[R] read and reshape time series table with empty items

Bastian Pöschl rotate at gmx.li
Wed Feb 25 13:01:35 CET 2009


Dear useR's,
I have a problem to read data (daily precipitation).
The data are formated in months by columns wich leads to empty items in
months with less then 31 days.

What i did was reading the file and try to reshape the object

a<- read.table("nds.txt", header=TRUE, sep=";", dec = ".",
na.string="NA")
ar<-reshape(a,
timevar="month",varying=list(c("Jan","Febr","März","April","Mai","Juni","Juli","Aug","Sept","Okt","Nov","Dez")),direction="long")

My problem is:
months are rowed instead of years (78Jan,79Jan,...,79Dec,80Dec)
empty items (like Feb30 and Feb31) are filled with "NA"

My aim is toget a simple data frame ore time series with format:

Date,value
1979/4/1;0.6
1979/4/2;0.0
...
1980/4/1;1.2
1980/4/1;1.3
1980/4/1;0.0

The data I've got have been excel tables for each year. I transformed
them to a text file that looks like:

#Precipitation in mm like in nds.txt
"Jahr";"Tag";"Jan";"Febr";"März";"April";"Mai";"Juni";"Juli";"Aug";"Sept";"Okt";"Nov";"Dez"
1978;1;"NA";"NA";"NA";0.0;5.5;0.0;11.8;0.0;2.4;6.4;0.0;0.0
1978;2;"NA";"NA";"NA";0.0;0.5;0.0;2.0;2.0;0.0;9.0;0.0;0.0
1978;3;"NA";"NA";"NA";0.3;0.0;3.0;3.2;0.4;0.0;24.7;0.0;0.0
1978;4;"NA";"NA";"NA";0.7;0.0;0.0;24.4;1.1;0.0;8.6;0.0;0.0
1978;5;"NA";"NA";"NA";11.8;2.2;0.0;17.0;0.0;0.0;0.0;0.0;0.0
1978;6;"NA";"NA";"NA";0.5;0.5;0.0;4.5;4.4;10.6;0.0;0.0;0.0
1978;7;"NA";"NA";"NA";0.0;6.5;0.0;0.5;29.0;9.4;0.0;0.0;0.0
1978;8;"NA";"NA";1.0;0.0;7.3;4.0;0.0;6.0;6.7;0.0;0.0;7.0
1978;9;"NA";"NA";4.0;0.3;2.0;3.5;2.7;0.4;2.9;0.0;0.0;0.0
1978;10;"NA";"NA";0.0;1.5;2.4;19.5;0.5;1.8;0.5;0.0;0.0;0.0
1978;11;"NA";"NA";3.8;9.0;2.8;0.0;4.0;0.0;0.0;0.0;0.0;0.0
1978;12;"NA";"NA";0.0;6.8;3.5;0.0;2.5;0.0;11.3;0.0;0.0;3.0
1978;13;"NA";"NA";1.3;2.8;5.4;3.8;2.3;3.4;0.5;0.0;0.0;1.0
1978;14;"NA";"NA";0.7;1.0;0.3;0.2;7.9;0.0;0.0;0.0;0.0;1.0
1978;15;"NA";"NA";3.7;2.7;4.8;0.0;4.2;0.0;0.0;0.0;0.0;0.0
1978;16;"NA";"NA";13.7;2.8;0.0;1.4;0.0;5.5;0.0;0.0;0.5;1.8
1978;17;"NA";"NA";0.0;1.5;3.8;2.3;0.0;2.3;0.0;3.5;0.0;0.0
1978;18;"NA";"NA";0.0;0.0;1.0;0.0;11.6;0.0;0.5;5.3;0.0;0.0
1978;19;"NA";"NA";1.0;0.0;7.0;0.0;1.1;0.0;0.0;0.0;0.0;4.0
1978;20;"NA";"NA";17.5;0.0;0.5;0.2;0.0;0.0;0.0;0.0;0.0;0.3
1978;21;"NA";"NA";1.0;1.5;4.5;0.0;2.6;0.0;0.0;0.0;0.0;0.7
1978;22;"NA";"NA";0.5;0.0;12.0;1.6;0.0;0.0;0.2;1.7;0.0;3.5
1978;23;"NA";"NA";4.0;0.5;5.8;5.8;0.0;0.0;13.0;3.7;0.0;1.3
1978;24;"NA";"NA";0.8;0.0;12.0;24.3;0.0;0.0;3.3;0.0;0.0;0.0
1978;25;"NA";"NA";0.0;0.0;0.0;4.4;0.0;0.0;0.0;0.0;0.0;0.0
1978;26;"NA";"NA";5.0;0.0;0.5;0.2;1.0;0.0;0.0;6.0;5.7;0.0
1978;27;"NA";"NA";2.2;6.0;0.0;1.3;9.8;0.0;2.3;3.0;2.9;0.0
1978;28;"NA";"NA";0.7;1.8;0.0;0.4;0.0;0.0;5.4;0.0;1.5;0.0
1978;29;"NA";;0.0;0.5;0.5;0.0;0.0;4.0;3.5;0.0;0.0;3.5
1978;30;"NA";;0.0;1.0;0.0;0.0;0.0;6.0;6.1;0.0;0.0;1.5
1978;31;"NA";;0.0;;0.0;;0.0;1.5;;0.0;;0.9
1979;1;3.5;1.0;0.5;"NA";"NA";0.1;0.0;0.5;0.0;0.0;0.0;0.0
1979;2;0.3;0.0;0.0;"NA";"NA";0.7;2.7;0.5;0.0;0.0;1.6;0.0
1979;3;0.5;2.7;0.0;"NA";"NA";0.0;3.0;2.5;1.0;0.0;1.0;0.0
1979;4;0.0;0.9;0.3;"NA";"NA";0.0;0.9;3.0;0.1;0.0;0.0;0.0
1979;5;0.0;2.2;0.0;"NA";"NA";0.0;0.0;0.0;0.0;0.6;3.5;0.0
1979;6;0.0;1.0;0.0;"NA";"NA";0.1;0.0;0.4;0.0;1.7;11.5;0.0
1979;7;0.0;1.0;0.0;"NA";"NA";1.0;0.6;0.0;0.0;0.0;5.0;0.0
1979;8;0.0;0.7;0.3;"NA";"NA";1.8;6.5;7.5;6.8;0.0;3.5;0.0
1979;9;3.5;1.8;0.8;"NA";"NA";0.2;9.3;2.2;4.3;0.0;6.5;0.9
1979;10;0.0;1.2;18.8;"NA";"NA";1.0;11.0;7.0;0.2;0.0;9.0;2.0
1979;11;1.2;1.0;7.8;"NA";"NA";3.4;0.0;1.4;0.0;0.3;0.0;12.0
1979;12;0.8;0.5;1.8;"NA";"NA";1.0;7.0;2.3;0.0;0.0;0.3;2.5
1979;13;1.4;0.0;0.0;"NA";"NA";3.2;3.0;0.0;0.0;5.3;0.0;0.0
1979;14;0.0;0.0;"NA";"NA";"NA";30.5;0.7;0.0;3.3;4.6;0.8;3.9
1979;15;0.0;13.5;"NA";"NA";"NA";1.4;0.0;0.0;2.2;19.0;8.0;3.4
1979;16;0.5;1.5;"NA";"NA";"NA";20.2;0.0;0.0;0.0;1.2;6.8;1.8
1979;17;0.5;5.5;"NA";"NA";"NA";14.8;4.0;5.5;0.0;11.1;9.8;1.4
1979;18;0.0;3.5;"NA";"NA";"NA";2.0;0.0;14.5;0.0;0.0;3.0;0.8
1979;19;0.0;0.0;"NA";"NA";"NA";0.0;4.0;0.0;0.0;0.0;6.0;4.0
1979;20;0.0;0.0;"NA";"NA";"NA";0.0;6.2;1.0;2.3;0.0;6.2;1.2
1979;21;0.0;0.0;"NA";"NA";"NA";0.0;0.0;0.0;36.0;0.0;1.0;4.0
1979;22;0.0;0.0;"NA";"NA";"NA";0.0;0.0;0.0;35.9;0.8;8.0;17.0
1979;23;2.3;0.0;"NA";"NA";"NA";0.0;0.0;1.5;4.6;5.8;0.0;3.0
1979;24;0.0;0.0;"NA";"NA";"NA";0.0;0.0;27.3;1.9;0.0;0.0;1.0
1979;25;0.5;0.0;"NA";"NA";"NA";0.7;0.0;0.8;0.0;0.0;0.0;0.0
1979;26;4.0;0.0;"NA";"NA";0.0;2.0;0.0;2.1;0.0;0.0;0.0;0.0
1979;27;11.5;0.0;"NA";"NA";4.5;3.6;0.0;0.0;0.0;0.0;4.0;0.0
1979;28;3.0;2.0;"NA";"NA";0.0;1.1;1.0;0.5;0.0;3.6;0.0;0.0
1979;29;0.8;;"NA";"NA";0.0;0.0;5.0;0.0;0.0;0.6;0.0;0.0
1979;30;0.8;;"NA";"NA";0.0;0.0;5.4;0.0;0.0;1.8;0.0;0.0
1979;31;0.4;;"NA";;1.7;;15.5;0.0;;0.4;;0.0
1980;1;"NA";"NA";"NA";"NA";"NA";0.6;0.0;0.0;1.0;0.0;0.0;"NA"
1980;2;"NA";"NA";"NA";"NA";"NA";0.5;0.0;0.0;0.0;1.5;0.0;"NA"
1980;3;"NA";"NA";"NA";"NA";"NA";0.7;3.6;0.0;0.0;0.0;0.0;"NA"
1980;4;"NA";"NA";"NA";"NA";"NA";17.2;0.0;6.5;0.0;0.0;2.2;"NA"
1980;5;"NA";"NA";"NA";"NA";"NA";0.0;0.0;0.0;0.0;0.0;0.7;"NA"
1980;6;"NA";"NA";"NA";"NA";"NA";0.5;0.0;0.0;6.4;0.0;"NA";"NA"
1980;7;"NA";"NA";"NA";"NA";0.0;0.0;2.3;0.0;0.0;0.5;"NA";"NA"
1980;8;"NA";"NA";"NA";"NA";2.3;2.3;2.8;10.5;0.0;10.5;"NA";"NA"
1980;9;"NA";"NA";"NA";"NA";6.7;2.2;21.0;0.0;3.8;7.8;"NA";"NA"
1980;10;"NA";"NA";"NA";"NA";0.9;2.7;3.5;0.0;2.2;2.3;"NA";"NA"
1980;11;"NA";"NA";"NA";"NA";0.9;1.2;0.3;0.0;4.0;3.4;"NA";"NA"
1980;12;"NA";"NA";"NA";"NA";0.0;0.0;0.0;5.0;0.0;1.5;"NA";"NA"
1980;13;"NA";"NA";"NA";"NA";0.0;0.0;3.5;0.0;0.0;0.0;"NA";"NA"
1980;14;"NA";"NA";"NA";"NA";8.3;0.0;0.0;0.0;0.0;0.0;"NA";"NA"
1980;15;"NA";"NA";"NA";"NA";19.0;2.0;0.5;1.3;0.0;0.0;"NA";"NA"
1980;16;"NA";"NA";"NA";"NA";2.3;0.5;0.0;6.7;0.0;6.5;"NA";"NA"
1980;17;"NA";"NA";"NA";"NA";2.4;23.3;0.0;4.4;0.0;50.5;"NA";"NA"
1980;18;"NA";"NA";"NA";"NA";0.5;1.2;0.0;0.0;0.0;6.5;"NA";"NA"
1980;19;"NA";"NA";"NA";"NA";0.0;0.0;0.0;0.0;0.0;1.5;"NA";"NA"
1980;20;"NA";"NA";"NA";"NA";0.0;0.5;9.5;2.2;0.0;0.0;"NA";"NA"
1980;21;"NA";"NA";"NA";"NA";1.2;8.5;14.0;4.3;0.0;0.0;"NA";"NA"
1980;22;"NA";"NA";"NA";"NA";0.4;11.0;0.0;0.5;0.0;0.0;"NA";"NA"
1980;23;"NA";"NA";"NA";"NA";0.5;5.0;0.0;0.2;8.3;0.0;"NA";"NA"
1980;24;"NA";"NA";"NA";"NA";0.2;5.5;0.0;0.0;0.0;2.0;"NA";"NA"
1980;25;"NA";"NA";"NA";"NA";0.5;0.7;0.0;0.0;0.0;19.0;"NA";"NA"
1980;26;"NA";"NA";"NA";"NA";0.0;0.3;0.0;0.0;0.0;0.5;"NA";"NA"
1980;27;"NA";"NA";"NA";"NA";0.0;9.0;0.0;0.0;0.0;0.0;"NA";"NA"
1980;28;"NA";"NA";"NA";"NA";2.1;0.0;0.0;2.1;0.0;0.0;"NA";"NA"
1980;29;"NA";"NA";"NA";"NA";1.9;0.0;6.9;2.0;0.0;0.0;"NA";"NA"
1980;30;"NA";;"NA";"NA";0.9;0.0;1.6;2.8;0.0;0.0;"NA";"NA"
1980;31;"NA";;"NA";;1.1;;0.0;2.2;;0.0;;"NA"

I hope someone has got experience with such data format and can help me.
Thank you very much

Bastian Pöschl




More information about the R-help mailing list