我有这个字符串变量介绍NA到as.numeric
mystr <- "98,015"
,我想将其转换为数字。
于是我就用:
num <- as.numeric(mystr)
但我收到此错误:
Warning message:
NAs introduced by coercion
此介绍NA,而不是数量。如果使用像"21"
这样的字符串,我会成功取得该号码。我能做什么?
我有这个字符串变量介绍NA到as.numeric
mystr <- "98,015"
,我想将其转换为数字。
于是我就用:
num <- as.numeric(mystr)
但我收到此错误:
Warning message:
NAs introduced by coercion
此介绍NA,而不是数量。如果使用像"21"
这样的字符串,我会成功取得该号码。我能做什么?
我们可以使用sub
替换,
和""
,然后将其转换为numeric
。由于,
字符,应用as.numeric
将其强制转换为NA。
as.numeric(sub(",", "", mystr))
如果,
代表.
,然后用.
更换(基于@ RHertel的评论)
as.numeric(sub(",", ".", mystr))
目前尚不清楚的OP的原始数据集是否是data.frame
或只是vector
。如果是数据帧,则在使用read.csv/read.table
读取时,我们可以指定dec=","
。
谢谢。它工作'as.numeric(sub(“,”,“”,mystr))'!我应该怎么做,如果我有一些像这样的“1071911” –
@Jason_K在这种情况下,你可以使用'gsub',而不是'sub'(但是从你的例子,我认为只有一个单一的“”每次每个号码 – akrun
GSUB功能也做了同样的
mystr <- c("98,015","10,125","11,456")
mystr <- as.numeric(gsub("\\,","",mystr))
class(mystr)
[1] "numeric"
你不需要转义逗号,除了无用地使用'gsub'而不是'sub'外,与其他答案有什么不同? – Cath
感谢Cath的更新会尝试使用其他功能 –
'readr :: parse_number( “98015”)' – alistaire