[R] Coercing a dataframe column to datetime
richard.kittler@amd.com
richard.kittler at amd.com
Wed Jun 16 18:37:11 CEST 2004
Sorry to bother you all with this one. I determined that the problem is solved if I use 'lapply' rather than 'sapply'. Since sapply returns the result as a vector it must be making a best guess of numeric for the class of the result (?)
--Rich
Richard Kittler
AMD TDG
408-749-4099
-----Original Message-----
From: Kittler, Richard
Sent: Tuesday, June 15, 2004 11:32 AM
To: 'Prof Brian Ripley'
Cc: r-help at stat.math.ethz.ch
Subject: RE: [R] Coercing a dataframe column to datetime
Thank you! The next step in the conversion still fails and I can't seem to find any examples in the archives. The result of the function 'as.POSIXct(strptime())' within the 'sapply' comes back as numeric rather than POSIXct as expected:
> ds <- cbind(1:2, c("02/27/92 23:03:20", "02/27/92 22:29:56")); ds
[,1] [,2]
[1,] "1" "02/27/92 23:03:20"
[2,] "2" "02/27/92 22:29:56"
> q <- sapply(ds[,2], function(x) as.POSIXct(strptime(x,"%m/%d/%y
> %H:%M:%S")))
> class(q)
[1] "numeric"
> q
02/27/92 23:03:20 02/27/92 22:29:56
699260600 699258596
--Rich
Richard Kittler
AMD TDG
408-749-4099
-----Original Message-----
From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
Sent: Monday, June 14, 2004 12:05 PM
To: Kittler, Richard
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] Coercing a dataframe column to datetime
You have forgotten as.POSIXct is needed too.
On Mon, 14 Jun 2004 richard.kittler at amd.com wrote:
> I am trying to coerce a data frame column from character to datetime using strptime but keep getting an error because the length of the coerced object is always 9. What am I doing wrong here:
>
> .................................................................
> > ds <- cbind(1:2, c("02/27/92 23:03:20", "02/27/92 22:29:56")); ds
> [,1] [,2]
> [1,] "1" "02/27/92 23:03:20"
> [2,] "2" "02/27/92 22:29:56"
> >
> > q <- strptime(ds[,2], "%m/%d/%y %H:%M:%S"); q
> [1] "1992-02-27 23:03:20" "1992-02-27 22:29:56"
> >
> > ds[,2] <- q
> Error in "[<-"(`*tmp*`, , 2, value = q) : number of items to replace
> is not a multiple of replacement length
> >
> > length(q)
> [1] 9
>
> .................................................................
>
> --Rich
>
> Richard Kittler
> AMD TDG
> 408-749-4099
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list