[Rd] Glitch involving difftime and data frame
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Tue Sep 7 00:54:41 CEST 2004
Prof Brian Ripley <ripley at stats.ox.ac.uk> writes:
> On 7 Sep 2004, Peter Dalgaard wrote:
>
> > This looks unintentional:
>
> Not so.
>
> > > d <- as.Date("2004-09-07")
> > > dd <- as.Date("2004-10-04")
> > > data.frame(d,dd,dd-d)
> > Error in as.data.frame.default(x[[i]], optional = TRUE) :
> > can't coerce difftime into a data.frame
> > > F <- data.frame(d,dd)
> > > F$foo <- dd-d
> > > cbind(F,dd-d)
> > Error in as.data.frame.default(x[[i]], optional = TRUE) :
> > can't coerce difftime into a data.frame
> >
> > Basically, the issue is that as.data.frame on a classed object expects
> > to find a method and there isn't any for difftime...
>
> Difftime depends crucially on attributes on the vector. I wasn't
> confident that they would be preserved as needed (and I think I had a
> problem example). Since then we have fixed a lot of the subsetting
> methods, but even so I am not 100% confident.
Hmm. So to get a survival time (say) into a data frame, we should
unclass it? (That $<- works seems coincidental and the resulting data
frame might cause trouble down the line). It does look rather tempting
to do as.data.frame.difftime <- as.data.frame.numeric and begone with
it though....
(It doesn't make much sense to have units other than "days" for Date
differences, so the use of difftime objects is a bit pointless from
the practical perspective, although perhaps not from a consistency
perspective. Any chance of doing months and years?)
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-devel
mailing list