Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将NA引入as.numeric_R - Fatal编程技术网

将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"