当前位置:  开发笔记 > 编程语言 > 正文

R -apply-将许多列从数字转换为因子

如何解决《R-apply-将许多列从数字转换为因子》经验,为你挑选了1个好方法。

我需要将许多数字列转换为因子类型.示例表:

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,我该怎么做?



1> Ben Bolker..:

尝试

df[,cols] <- lapply(df[,cols],as.factor)

问题是apply()尝试将结果绑定到矩阵中,这会导致将列强制转换为字符:

class(apply(df[,cols], 2, as.factor))  ## matrix
class(as.factor(df[,1]))  ## factor

相反,lapply()对列表元素进行操作.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有