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 mph Deg DegF DegF2 % volts Deg mph2 w/m2 > 0506010000 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.8 NA 65.1 NA NA 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 NA 1 > > *#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.