将NA引入as.numeric

时间:2016-09-14 12:42:54

标签: r

我有这个字符串变量

mystr <- "98,015"

我希望将其转换为数字。

所以我用:

num <- as.numeric(mystr)

但是我收到了这个错误:

Warning message:
NAs introduced by coercion

这引入了NA而不是数字。如果使用类似"21"的字符串,我会成功获取该数字。我该怎么办?

2 个答案:

答案 0 :(得分:2)

我们可以使用sub,替换为"",然后将其转换为numeric。由于,字符,将as.numeric强制应用于NA。

as.numeric(sub(",", "", mystr))

如果,代表.,请将其替换为.(基于@ RHertel&#39;评论)

as.numeric(sub(",", ".", mystr))

目前尚不清楚OP的原始数据集是data.frame还是vector。如果是data.frame,在使用read.csv/read.table阅读时,我们可以指定dec=","

答案 1 :(得分:0)

gsub函数也做同样的事情

mystr <- c("98,015","10,125","11,456")

mystr <- as.numeric(gsub("\\,","",mystr))

class(mystr)
 [1] "numeric"