我有这个字符串变量
mystr <- "98,015"
我希望将其转换为数字。
所以我用:
num <- as.numeric(mystr)
但是我收到了这个错误:
Warning message:
NAs introduced by coercion
这引入了NA而不是数字。如果使用类似"21"
的字符串,我会成功获取该数字。我该怎么办?
答案 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"