[R] POSIXct and chron issues with tz

2009-01-03 Thread Sherri Heck

Dear All-

I am trying to merge two data files - they have different date formats 
and different times zones.  I need to match up the date/time of the 
datasets and then invoke a conditional statement, such as: if dataC$mph 
is = 12 then keep dataM$co23 for the corresponding time/date stamp.


snippets of data files:

*dataC.txt*
LST   in mphDeg   DegF  DegF2%volts   Degmph2   w/m2
050601   0.00   13.6  218.1   36.8   -999   65.1   -999   -999   
18.20.2
0506010005   0.00   12.9  214.3   36.8   -999   65.5   -999   -999   
16.90.2
0506010010   0.00   14.4  215.7   36.9   -999   65.4   -999   -999   
20.40.2


*dataM.txt*
doy yr mon day hr hgt1 hgt2 hgt3 co21 co22 co23 sig1 sig2 sig3 dif flag

244.02083 2005 09 01 00 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 
-999.99 -999.99 -999.99 PRE
244.0625 2005 09 01 01 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 
-999.99 -999.99 -999.99 PRE
244.10417 2005 09 01 02 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 
-999.99 -999.99 -999.99 PRE


*Code:*

z - read.zoo(dataC.txt, header = TRUE, na.strings = -999,  
   format = %y%m%d%H%M, FUN = 
as.chron,
   colClasses = c(character, rep(numeric, 10)))


DF - read.table(C:/R/dataM.txt, header = TRUE, na.strings = -999.99)
tt - with(DF, chron(paste(mon, day, yr, sep = /),
  paste(hr, 0, 0, sep = :)))
  timeconv -  as.POSIXct(tt, tz=)
  z2 - zoo(data.matrix(DF), timeconv)


*example of output of data files*

z[1,]
   in.  mph   Deg DegF DegF2   X. volts Deg.1 mph2 w.m2
(06/01/05 00:00:00)   0 13.6 218.1 36.8NA 65.1NANA 18.2  0.2


 z2[1,]
doy   yr mon day hr hgt1 hgt2 hgt3 co21 co22 
co23 sig1 sig2 sig3 dif flag
2005-08-31 18:00:00 244.0208 2005   9   1  0  2.5  5.8  9.1   NA   NA   
NA   NA   NA   NA  NA1


*#merging data files z, z2*
m - merge(z, z2, all = c(FALSE, TRUE))
m[m==-999.99]-NA
m2 - m[m$mon %in% c(6,7,8),]

*returns the following warning message:*
Warning message:
In merge.zoo(z, z2, all = c(FALSE, TRUE)) :
 Index vectors are of different classes: chron POSIXt

I cannot find a way to deal with the timezone in chron.  But, I found 
through the help pages that POSIXct deals with tz.  However, it doesn't 
seem these two different formats are compatible to merge.  Any thoughts 
would be appreciated.


cheers,

sherri

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] POSIXct and chron issues with tz

2009-01-03 Thread Gabor Grothendieck
There seems to be no reason to use POSIXct in the first place.
Just use chron everywhere and read R News 4/1.
Suppose we just want month 9 from the merged object:

z2 - zoo(data.matrix(DF), tt)

m - merge(z, z2, all = c(FALSE, TRUE))
m[ m$mon %in% 9 ]


On Sat, Jan 3, 2009 at 7:57 PM, Sherri Heck sh...@ucar.edu wrote:
 Dear All-

 I am trying to merge two data files - they have different date formats and
 different times zones.  I need to match up the date/time of the datasets and
 then invoke a conditional statement, such as: if dataC$mph is = 12 then
 keep dataM$co23 for the corresponding time/date stamp.

 snippets of data files:

 *dataC.txt*
 LST   in mphDeg   DegF  DegF2%volts   Degmph2   w/m2
 050601   0.00   13.6  218.1   36.8   -999   65.1   -999   -999   18.2
  0.2
 0506010005   0.00   12.9  214.3   36.8   -999   65.5   -999   -999   16.9
  0.2
 0506010010   0.00   14.4  215.7   36.9   -999   65.4   -999   -999   20.4
  0.2

 *dataM.txt*
 doy yr mon day hr hgt1 hgt2 hgt3 co21 co22 co23 sig1 sig2 sig3 dif flag

 244.02083 2005 09 01 00 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 -999.99
 -999.99 -999.99 PRE
 244.0625 2005 09 01 01 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 -999.99
 -999.99 -999.99 PRE
 244.10417 2005 09 01 02 2.5 5.8 9.1 -999.99 -999.99 -999.99 -999.99 -999.99
 -999.99 -999.99 PRE

 *Code:*

 z - read.zoo(dataC.txt, header = TRUE, na.strings = -999,
 format = %y%m%d%H%M, FUN = as.chron,
 colClasses = c(character, rep(numeric,
 10)))

 DF - read.table(C:/R/dataM.txt, header = TRUE, na.strings = -999.99)
 tt - with(DF, chron(paste(mon, day, yr, sep = /),
  paste(hr, 0, 0, sep = :)))
  timeconv -  as.POSIXct(tt, tz=)
  z2 - zoo(data.matrix(DF), timeconv)


 *example of output of data files*

z[1,]
   in.  mph   Deg DegF DegF2   X. volts Deg.1 mph2 w.m2
 (06/01/05 00:00:00)   0 13.6 218.1 36.8NA 65.1NANA 18.2  0.2


 z2[1,]
doy   yr mon day hr hgt1 hgt2 hgt3 co21 co22 co23
 sig1 sig2 sig3 dif flag
 2005-08-31 18:00:00 244.0208 2005   9   1  0  2.5  5.8  9.1   NA   NA   NA
 NA   NA   NA  NA1

 *#merging data files z, z2*
 m - merge(z, z2, all = c(FALSE, TRUE))
 m[m==-999.99]-NA
 m2 - m[m$mon %in% c(6,7,8),]

 *returns the following warning message:*
 Warning message:
 In merge.zoo(z, z2, all = c(FALSE, TRUE)) :
  Index vectors are of different classes: chron POSIXt

 I cannot find a way to deal with the timezone in chron.  But, I found
 through the help pages that POSIXct deals with tz.  However, it doesn't seem
 these two different formats are compatible to merge.  Any thoughts would be
 appreciated.

 cheers,

 sherri

 __
 R-help@r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.


__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.