gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:33:46 27 4
gpt4 key购买 nike

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

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,我怎么能做到这一点?

最佳答案

尝试

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

问题是 apply()尝试将结果绑定(bind)到矩阵中,这会导致将列强制转换为字符:
class(apply(df[,cols], 2, as.factor))  ## matrix
class(as.factor(df[,1])) ## factor

相比之下, lapply()对列表的元素进行操作。

关于R -apply- 将许多列从数字转换为因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34124444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com