以逗号为因子,以数字为百分比

时间:2017-12-28 10:14:46

标签: r class types numeric

我有一个列(“费率”),这是一个factor,有几个等级,如:

  

16级:-0,186%-0,229%-0,326%......

当我尝试将其转换为numeric时,引入了NAs,我无法弄清楚如何正确地执行此操作。

rates=as.numeric(gsub(",", ".", rates))
rates=as.numeric(sub("%", "e-2", rates))

我也尝试了以下,这是类似问题的答案,但它也不起作用。     rates=as.numeric(gsub("\\%", "", rates))

3 个答案:

答案 0 :(得分:2)

另一种选择是使用parse_number - 包中的readr - 函数,并指定逗号用作十进制标记:

library(readr)
parse_number(rates, locale = locale(decimal_mark = ','))

给出:

[1] -0.186 -0.229 -0.326

使用过的数据:

rates <- as.factor(c("-0,186%", "-0,229%", "-0,326%"))

答案 1 :(得分:1)

使用gsub:

# Example vector
vec <- as.factor(c("-0,186%", "-0,229%", "-0,326%"))

# Convert vector to numeric
vec <- as.numeric(gsub(",", ".", gsub("%", "", as.character(vec))))

答案 2 :(得分:1)

我假设您的初始因素的级别是字符。然后你需要同时做两个替换:

if (data.results.length > 0) {
  GetArticulateDetails();
}