【问题标题】:r: convert multiple factors to numeric simultaneouslyr:同时将多个因子转换为数值
【发布时间】:2015-08-18 17:15:32
【问题描述】:

我知道如何将数据帧的一个因子转换为数字:

rds$fcv12afa3num <- as.numeric(levels(rds$fcv12afa3))[rds$fcv12afa3]

我的两个问题:

  1. 但是,如果 df 仅包含因子,我如何同时转换所有数据帧列?
  2. 如何根据列名的模式同时转换多个因子?

我有很多 NA,如果这很重要的话。

谢谢你的回答,克里斯蒂安

【问题讨论】:

    标签: r


    【解决方案1】:

    如果没有示例数据,我无法给出完全准确的答案,但这应该可以帮助您入门。

    factorVars <- names(YourData)[vapply(YourData, is.factor, logical(1))]
    
    YourData[, factorVars] <- lapply(YourData[, factorVars, drop = FALSE],
                as.numeric)
    

    一些注意事项:

    1. 使用drop = FALSE 处理数据框中只有一个因素的情况。
    2. 如果所有因素都是数据框,您可能会得到一个列表对象作为回报。您必须通过 as.data.frame 运行该列表才能取回您的数据框。

    【讨论】:

    • 您想使用as.numeric(as.character(f)) 以防您想要获取级别的数字表示,而不是因子的内部数字表示。
    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 2013-09-02
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多