R将类型因子的所有列更改为数字

scr*_*Owl 20 r type-conversion

我有一个100 X 100的数据框.有30列是因素.有没有办法只将因子类型列切换为数字类型而不影响其他列(不进入循环路径)?

Dav*_*d F 25

运用Carl Witthoft的智慧:

asNumeric <- function(x) as.numeric(as.character(x))
factorsNumeric <- function(d) modifyList(d, lapply(d[, sapply(d, is.factor)],   
                                                   asNumeric))
Run Code Online (Sandbox Code Playgroud)

例:

d <- data.frame(x=factor(1:3), y=factor(2:4), z=factor(3:5),
                r=c("a", "b", "c"), stringsAsFactors=FALSE)
> f <- factorsNumeric(d)
> class(f$x)
[1] "numeric"
> class(f$r)
[1] "character"
Run Code Online (Sandbox Code Playgroud)


Car*_*oft 16

请参阅cran.r-project.org上的R-FAQ 7.10 http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-do-I-convert-factors-to-numeric_003f

总是做 as.numeric(as.character(some_Factor)) 或你会后悔.