Farrel Buchinsky
2008-Dec-10 23:26 UTC
[R] converting multiple columns from POSIX* to Date
converting a POSIX class variable to a date class is easy. dates<-as.Date(x) #where X is of class POSIX How does one do that to all columns in a data frame that are of POSIX class and leave all the other columns (integers, factors) as is. Feel free to reply with just one or two buzzwords that I could then search for to find how to do it. Farrel Buchinsky
on 12/10/2008 05:26 PM Farrel Buchinsky wrote:> converting a POSIX class variable to a date class is easy. > dates<-as.Date(x) #where X is of class POSIX > How does one do that to all columns in a data frame that are of POSIX > class and leave all the other columns (integers, factors) as is. > > Feel free to reply with just one or two buzzwords that I could then > search for to find how to do it. > > Farrel BuchinskyIf 'DF' is your source data frame, something like: DF[] <- lapply(DF, function(x) ifelse(class(x) == "POSIXt", as.Date(x), x) This is untested, so proceed with due caution. HTH, Marc Schwartz
Farrel Buchinsky
2008-Dec-10 23:47 UTC
[R] converting multiple columns from POSIX* to Date
I will try that but I am somewhat skeptical since when I go class(date.of.birth) I get not just one word but two: "POSIXt" "POSIXct". Will that not mess up the logical test When I tried the following: lapply(as.list(dataframename),class)=="POSIXt" every item was false Farrel Buchinsky GrandCentral Tel: (412) 567-7870> > Dear Farrel, > Determine the class of each column and apply as.Date() just to those which > class is POSIX. For more details see ?class. Here is an example assuming > that you're data is named "mydata": > apply(mydata, 2, function(x) ifelse( class(x)=="POSIXt" | > class(x)=="POSIXlt" , as.Date(x) , x ) ) > > HTH, > > Jorge > > > > On Wed, Dec 10, 2008 at 6:26 PM, Farrel Buchinsky <fjbuch at gmail.com> wrote: >> >> converting a POSIX class variable to a date class is easy. >> dates<-as.Date(x) #where X is of class POSIX >> How does one do that to all columns in a data frame that are of POSIX >> class and leave all the other columns (integers, factors) as is. >> >> Feel free to reply with just one or two buzzwords that I could then >> search for to find how to do it. >> >> Farrel Buchinsky >> >> ______________________________________________ >> R-help at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > >