如何将R中的所有百分比数据转换为小数?
How to convert all percentage data in R to decimal?
我有一个包含数值数据和分类数据的大型数据集。
许多列包含 % 数据,即“26.2%”,因为这些在 R 中不被识别为百分比,我希望将它们转换为小数。
我试过:
data2 <- as.numeric(sub("%", "",data,fixed=TRUE))/100
但是:
Warning message:
NAs introduced by coercion
有人可以帮助解决 and/or 语法的正确方法吗?
如果你的数据是dataframe,则不能使用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
是你的数据框
我有一个包含数值数据和分类数据的大型数据集。 许多列包含 % 数据,即“26.2%”,因为这些在 R 中不被识别为百分比,我希望将它们转换为小数。
我试过:
data2 <- as.numeric(sub("%", "",data,fixed=TRUE))/100
但是:
Warning message: NAs introduced by coercion
有人可以帮助解决 and/or 语法的正确方法吗?
如果你的数据是dataframe,则不能使用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
是你的数据框