为什么gsub无法取代NA

时间:2018-11-12 18:07:05

标签: r

目标

在字符向量中将NA替换为"Nothing"

输入

data<-c(NA, NA, "SupineAcid", NA, NA, NA, "UprightAcid", "UprightAcid", 
NA, NA, "UprightAcid", NA, "UprightAcid", NA, NA, "UprightAcid", 
"TotalAcid", NA, NA, NA)

尝试

gsub(NA,"dd",data)

这导致所有结果均为不适用

我也尝试过使用"NA"fixed=TRUE,但是存在相同的问题。

3 个答案:

答案 0 :(得分:2)

要更改向量中的NA元素,可以使用is.na函数:

data[is.na(data)] = "dd"

 "dd"          "dd"          "SupineAcid"  "dd"          "dd"          "dd"          "UprightAcid"
 "UprightAcid" "dd"          "dd"          "UprightAcid" "dd"          "UprightAcid" "dd"         
 "dd"          "UprightAcid" "TotalAcid"   "dd"          "dd"          "dd"

答案 1 :(得分:1)

NA与“ NA”不同。如果您确定第一个和第三个参数都使用“ NA”,那么它将起作用。

sub("NA", "dd", paste(data))

或者

ifelse(is.na(data), "dd", data)

答案 2 :(得分:0)

另一个选项是replace

replace(data, is.na(data), 'dd')