首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用逗号和百分比表示数字的因素

用逗号和百分比表示数字的因素
EN

Stack Overflow用户
提问于 2017-12-28 10:14:45
回答 3查看 216关注 0票数 0

我有一个列(“rates”),它是一个具有几个级别的factor,例如:

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

当我试图把它转换成numeric时,NAs就会被引入,我不知道如何正确地实现它。

代码语言:javascript
复制
rates=as.numeric(gsub(",", ".", rates))
rates=as.numeric(sub("%", "e-2", rates))

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

EN

回答 3

Stack Overflow用户

发布于 2017-12-28 10:42:05

另一个选项是使用来自parse_number-function的readr-package,并指定逗号用作十进制标记:

代码语言:javascript
复制
library(readr)
parse_number(rates, locale = locale(decimal_mark = ','))

这意味着:

1 -0.186 -0.229 -0.326

使用的数据:

代码语言:javascript
复制
rates <- as.factor(c("-0,186%", "-0,229%", "-0,326%"))
票数 2
EN

Stack Overflow用户

发布于 2017-12-28 10:20:24

使用gsub:

代码语言:javascript
复制
# Example vector
vec <- as.factor(c("-0,186%", "-0,229%", "-0,326%"))

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

Stack Overflow用户

发布于 2017-12-28 10:21:54

我想你最初考虑的因素是碳氢化合物。然后,您需要同时进行两种替换:

代码语言:javascript
复制
rates=as.numeric(gsub(",", ".", gsub("%", "e-2", rates)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48005566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档