我有一个列(“rates”),它是一个具有几个级别的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))
发布于 2017-12-28 10:42:05
另一个选项是使用来自parse_number-function的readr-package,并指定逗号用作十进制标记:
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%"))发布于 2017-12-28 10:20:24
使用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))))发布于 2017-12-28 10:21:54
我想你最初考虑的因素是碳氢化合物。然后,您需要同时进行两种替换:
rates=as.numeric(gsub(",", ".", gsub("%", "e-2", rates)))https://stackoverflow.com/questions/48005566
复制相似问题