为什么R中的gx()之类的正则表达式函数无法识别NA?

Rus*_*tel 0 r na

我试图取代NA使用regex类似的功能gsub-

样本数据-

a<-c(NA,1:5,NA,NA,1:3, rep(NA,round(runif(1,0,100))))
Run Code Online (Sandbox Code Playgroud)

如何NApattern匹配字段中进行识别。

对于例如 gsub("identify NA", 0, a)

注意-我知道其他可以替换的方法NA,但是我正在尝试NA使用确定regex

编辑-我的目的是了解为什么正则表达式无法识别NA

Dir*_*tel 8

不要使用gsub()或其他reg.exp函数- NA 已经是可识别的,因此使用is.na()

R> a<-c(NA,1:5,NA,NA,1:3, rep(NA,round(runif(1,0,100))))
R> a
 [1] NA  1  2  3  4  5 NA NA  1  2  3 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[30] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
R> a[is.na(a)] <- 42
R> a
 [1] 42  1  2  3  4  5 42 42  1  2  3 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
[30] 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
R> 
Run Code Online (Sandbox Code Playgroud)

在这里,我们简单地对向量a进行索引,is.na(a)并且为了使其简单,只需为这些值分配一个新值。

简而言之,不要将NA打印实际NA值时显示的“文本” 与的条件混淆NA