【问题标题】:How to convert all percentage data in R to decimal? [duplicate]如何将R中的所有百分比数据转换为十进制? [复制]
【发布时间】:2015-03-28 01:28:16
【问题描述】:

我有一个包含数字和分类数据的大型数据集。 许多列包含 % 数据,即“26.2%”,因为这些在 R 中不被识别为百分比,我希望将它们转换为小数。

我试过了:

data2 <- as.numeric(sub("%", "",data,fixed=TRUE))/100

但是:

警告信息: 强制引入的 NAs

有人可以帮忙解决正确的方法和/或语法吗?

【问题讨论】:

    标签: r percentage


    【解决方案1】:

    如果您的数据是数据框,则不能使用 sub 函数。 sub 用于向量。

    尝试使用相同的函数,但逐列 例如

    column1 <- as.numeric(sub("%", "",data$column1,fixed=TRUE))/100
    

    【讨论】:

    • 感谢您的帮助。不过,我有 400 多列,有没有办法在 df 中做类似的事情?
    • 可能是一个肮脏的解决方案,但你总是可以通过循环来做到这一点: for(i in 1:ncol(data)){ data[,i]
    • 谢谢大家,我没有足够的代表来投票,但所有有用的建议。干杯
    【解决方案2】:

    你可以试试:

    library(dplyr)
    df %>% mutate_each(funs(as.numeric(gsub("%", "", ., fixed = TRUE))/100))
    

    【讨论】:

      【解决方案3】:

      要应用到所有列,您可以将其他用户提供的代码与应用语句结合起来。例如,

      apply(d,2, function(x){
       as.numeric(sub("%", "", x, fixed=TRUE))/100}
      

      哪里 d 是你的数据框

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-11
        • 1970-01-01
        • 1970-01-01
        • 2014-01-06
        • 2016-09-03
        • 2013-10-30
        • 2017-10-15
        • 2021-09-23
        相关资源
        最近更新 更多