[EMAIL PROTECTED] wrote: > Full_Name: Rene Locher > Version: 2.7.2 Patched (2008-09-12 r46541) > OS: XP > Submission from: (NULL) (160.85.231.40) > > > dat <- data.frame(event=factor(c("A","A","B")), > time=as.POSIXct(c("2008-01-10","2008-01-01","2008-01-04"))) > > min(dat$time) > ## "2008-01-01 CET" > ## as expected > > aggregate(dat$time,by=list(event=dat$event),min) > ## results in > ## event x > ## 1 A 1199142000 > ## 2 B 1199401200 > > ## I expected: > ## event x > ## 1 A "2008-01-01 CET" > ## 2 B "2008-01-04 CET" >
This is as documented, possibly annoying, but not a bug. aggregate() is documented to build on tapply() for which the discarding of class is documented on ?tapply. The root cause is unlist(): > tapply(dat[["time"]],dat$event,min,simplify=FALSE) $A [1] "2008-01-01 CET" $B [1] "2008-01-04 CET" > unlist(tapply(dat[["time"]],dat$event,min,simplify=FALSE)) A B 1199142000 1199401200 and a partial rationale is that unlist() wouldn't know what to do if the arguments had different classes. The workaround is, of course, just to stick the class back on. -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel