【发布时间】:2015-03-28 01:28:16
【问题描述】:
我有一个包含数字和分类数据的大型数据集。 许多列包含 % 数据,即“26.2%”,因为这些在 R 中不被识别为百分比,我希望将它们转换为小数。
我试过了:
data2 <- as.numeric(sub("%", "",data,fixed=TRUE))/100
但是:
警告信息: 强制引入的 NAs
有人可以帮忙解决正确的方法和/或语法吗?
【问题讨论】:
标签: r percentage
我有一个包含数字和分类数据的大型数据集。 许多列包含 % 数据,即“26.2%”,因为这些在 R 中不被识别为百分比,我希望将它们转换为小数。
我试过了:
data2 <- as.numeric(sub("%", "",data,fixed=TRUE))/100
但是:
警告信息: 强制引入的 NAs
有人可以帮忙解决正确的方法和/或语法吗?
【问题讨论】:
标签: r percentage
如果您的数据是数据框,则不能使用 sub 函数。 sub 用于向量。
尝试使用相同的函数,但逐列 例如
column1 <- as.numeric(sub("%", "",data$column1,fixed=TRUE))/100
【讨论】:
你可以试试:
library(dplyr)
df %>% mutate_each(funs(as.numeric(gsub("%", "", ., fixed = TRUE))/100))
【讨论】:
要应用到所有列,您可以将其他用户提供的代码与应用语句结合起来。例如,
apply(d,2, function(x){
as.numeric(sub("%", "", x, fixed=TRUE))/100}
哪里 d 是你的数据框
【讨论】: