我有一个列(“费率”),这是一个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))
答案 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();
}