将NA引入as.numeric
我有这个字符串变量将NA引入as.numeric,r,R,我有这个字符串变量 mystr <- "98,015" 这将引入NA而不是数字。如果a使用像“21”这样的字符串,我将成功获取该数字。我能做什么?我们可以使用sub将,替换为”,然后将其转换为数值。由于,字符,将应用为.numeric会将其强制为NA as.numeric(sub(",", "", mystr)) 如果,表示,则将其替换为(基于@RHertel的注释) 不清楚OP的原始数据集是data.frame还是仅仅vector。如果是data.frame,在使用read.csv
mystr <- "98,015"
这将引入NA而不是数字。如果a使用像
“21”
这样的字符串,我将成功获取该数字。我能做什么?我们可以使用sub
将,
替换为”
,然后将其转换为数值。由于,
字符,将应用为.numeric
会将其强制为NA
as.numeric(sub(",", "", mystr))
如果,
表示
,则将其替换为
(基于@RHertel的注释)
不清楚OP的原始数据集是data.frame
还是仅仅vector
。如果是data.frame,在使用read.csv/read.table
读取时,我们可以指定dec=“,”
gsub函数也执行相同的操作
mystr <- c("98,015","10,125","11,456")
mystr <- as.numeric(gsub("\\,","",mystr))
class(mystr)
[1] "numeric"
mystr您不需要转义逗号,与其他答案有什么区别,除了无用地使用gsub
而不是sub
?感谢Cath为您提供的更新将尝试使用其他函数readr::parse_number(“98015”)
谢谢。它的工作方式是.numeric(sub(“,”,“,mystr))
!如果我有一个像“1071911”这样的数字,我该怎么办?Jason_K在这种情况下,您可以使用gsub
而不是sub
(但从您的示例中,我认为每个数字只有一个“,”)
as.numeric(sub(",", "", mystr))
as.numeric(sub(",", ".", mystr))
mystr <- c("98,015","10,125","11,456")
mystr <- as.numeric(gsub("\\,","",mystr))
class(mystr)
[1] "numeric"