Assuming you want to find a whole number months and quarters:
require(chron) z <- chron( SLDATX, format="y-m-d" ) months <- with( month.day.year(z), 12*(year-1986)+month-1 ) quarters <- months %/% 3 --- Date: Tue, 16 Dec 2003 13:58:13 +1300 (NZDT) From: Ko-Kang Kevin Wang <[EMAIL PROTECTED]> To: Gabor Grothendieck <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> Subject: Re: [R] Julian Dates Thanks! chron() is very useful indeed. Just out of interest, is it possible to do, say in this case, the number of months (or quarters) after January 1986? i.e. use a different time interval? On Mon, 15 Dec 2003, Gabor Grothendieck wrote: > What you can do to handle this timezone problem is either to use > POSIXt with GMT or use chron (which does not use timezones so > can't cause problems like this): > > Suppose: > > SLDATX <- c( "1986-01-06", "1986-01-17", "1986-02-02", "1986-02-04", > ,"1986-02-04", "1986-02-21", "1986-03-06", "1986-03-25", > ,"1986-04-06", "1986-04-10" ) > > # then using POSIXt in the GMT timezone: > > TIMESOLD <- as.numeric( julian( as.POSIXlt( SLDATX, tz="GMT" ), > origin = as.POSIXct( "1986-01-01", tz = "GMT" ) ) ) > > # or the alternative using chron: > > require(chron) > TIMESOLD2 <- as.numeric( chron( SLDATX, format="y-m-d", > origin = c( month = 1, day = 1, year = 1986 ) ) ) > > all.equal(TIMESOLD,TIMESOLD2) > -- Cheers, Kevin --------------------------------------------------------------- "Try not. Do, do! Or do not. There is no try" Jedi Master Yoda ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help