我需要将许多数字列转换为因子类型。
示例表:
df <- data.frame(A=1:10, B=2:11, C=3:12)
我尝试过应用:
cols<-c('A', 'B')
df[,cols]<-apply(df[,cols], 2, function(x){ as.factor(x)});
但结果是一个字符类。
> class(df$A)
[1] "character"
如何在不对每列执行 as.factor 的情况下执行此操作?
Try
df[,cols] <- lapply(df[,cols],as.factor)
问题是apply()
尝试将结果绑定到矩阵中,这会导致将列强制为字符:
class(apply(df[,cols], 2, as.factor)) ## matrix
class(as.factor(df[,1])) ## factor
相比之下,lapply()
对列表的元素进行操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)