[R] Apply as.factor (or as.numeric etc) to multiple columns

Gabor Grothendieck ggrothendieck at gmail.com
Tue Jun 23 23:45:30 CEST 2009


Try this:

ix <- 2:5
DF[ix] <- lapply(DF[ix], as.numeric)

nms <- c("x", "y")
DF[nms] <- lapply(DF[nms], as.factor)


On Tue, Jun 23, 2009 at 5:23 PM, Mark Na<mtb954 at gmail.com> wrote:
> Hi R-helpers,
>
> I have a dataframe with 60columns and I would like to convert several
> columns to factor, others to numeric, and yet others to dates. Rather
> than having 60 lines like this:
>
> data$Var1<-as.factor(data$Var1)
>
> I wonder if it's possible to write one line of code (per data type,
> e.g. factor) that would apply a function (e.g., as.factor) to several
> (non-contiguous) columns. So, I could then use 3 or 4 lines of code
> (for 3 or 4 data types) instead of 60.
>
> I have tried writing an apply function, but it failed.
>
> Thanks for any help you might be able to provide.
>
> Mark Na
>
> ______________________________________________
> 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.
>




More information about the R-help mailing list