【发布时间】:2015-08-18 17:15:32
【问题描述】:
我知道如何将数据帧的一个因子转换为数字:
rds$fcv12afa3num <- as.numeric(levels(rds$fcv12afa3))[rds$fcv12afa3]
我的两个问题:
- 但是,如果 df 仅包含因子,我如何同时转换所有数据帧列?
- 如何根据列名的模式同时转换多个因子?
我有很多 NA,如果这很重要的话。
谢谢你的回答,克里斯蒂安
【问题讨论】:
标签: r
我知道如何将数据帧的一个因子转换为数字:
rds$fcv12afa3num <- as.numeric(levels(rds$fcv12afa3))[rds$fcv12afa3]
我的两个问题:
我有很多 NA,如果这很重要的话。
谢谢你的回答,克里斯蒂安
【问题讨论】:
标签: r
如果没有示例数据,我无法给出完全准确的答案,但这应该可以帮助您入门。
factorVars <- names(YourData)[vapply(YourData, is.factor, logical(1))]
YourData[, factorVars] <- lapply(YourData[, factorVars, drop = FALSE],
as.numeric)
一些注意事项:
drop = FALSE 处理数据框中只有一个因素的情况。as.data.frame 运行该列表才能取回您的数据框。【讨论】:
as.numeric(as.character(f)) 以防您想要获取级别的数字表示,而不是因子的内部数字表示。