[Rd] [R] Date Format
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Tue Jul 11 20:05:39 CEST 2006
Martyn Plummer <plummer at iarc.fr> writes:
> I moved this to R-devel because I am wondering why the base package does
> not allow you to convert from numeric to Date. Could we not have
> something like this?
>
> as.Date.numeric <- function(x, epoch="1970-01-01", ...) {
> if (!is.character(epoch) || length(epoch) != 1)
> stop("invalid epoch")
> as.Date(epoch, ...) + x
> }
We could, but you might as well do it explicitly. There's something to
be said for not confusing the concept of dates with a particular
implementation, which is effectively what happens if you can convert
them to and from numeric too seamlessly.
I'm more perplexed by the failure of adding difftimes to dates:
> as.Date("2006-1-1") + (as.Date("2006-1-1") - as.Date("2006-1-2"))
[1] "2005-12-31"
Warning message:
Incompatible methods ("+.Date", "Ops.difftime") for "+"
and if you have a difftime in non-days units, you'll actually get a
wrong result:
> D1 <- as.Date("2006-1-1")
> D2 <- as.Date("2006-1-2")
> difftime(D2,D1,units="hours")
Time difference of 24 hours
> dd <- difftime(D2,D1,units="hours")
> D1+dd
[1] "2006-01-25"
Warning message:
Incompatible methods ("+.Date", "Ops.difftime") for "+"
> On Tue, 2006-07-11 at 12:58 -0400, Gabor Grothendieck wrote:
> > Try this:
> >
> > library(zoo)
> > as.Date(11328)
> >
> > See the Help Desk article in R News 4/1 for more on dates.
> >
> >
> > On 7/11/06, pierre clauss <pierreclauss at yahoo.fr> wrote:
> > > Hi everybody,
> > > I need your precious help for, I think, a simple request, but I do not manage to solve this.
> > >
> > > When I use a "table" function with dates in the rows, the rows are coerced to number after the table function.
> > >
> > > So I need to transform the row names into date format. But I do not manage.
> > >
> > > Therefore, for an example, I manage to write this :
> > >
> > > datetest<-"06/01/2001"
> > > datetest<-as.Date(datetest,"%d/%m/%Y")
> > > datetest<-as.numeric(datetest)
> > >
> > > to get 11328.
> > >
> > > But I do not obtain the inverse tranformation :
> > >
> > > datetest<-as.Date(datetest,"%d/%m/%Y")
> > >
> > > How do we get this please ?
> > >
> > > Thanks a lot for your solution.
> > > Pierre.
> > >
> > >
>
> -----------------------------------------------------------------------
> This message and its attachments are strictly confidential. ...{{dropped}}
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
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
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-devel
mailing list