【发布时间】:2018-03-13 09:46:30
【问题描述】:
我有一个字符串向量:
ve <- c("N","A","A","A","N","ANN","NA","NFNFNAA","23","N","A","NN", "parnot", "important", "notall")
我想在这个向量中只保留三个可能的值:N、A 和 NA。
因此,我想用NA 替换任何不是N 或A 的元素。
我怎样才能做到这一点?
我尝试了以下方法:
gsub(ve, pattern = '[^NA]+', replacement = 'NA')
gsub(ve, pattern = '[^N|^A]+', replacement = 'NA')
但是这些都不能很好地工作,因为它们用 NA 替换了每个字符串中的每个“A”或“N”实例。所以在某些情况下,我最终会得到NANANANANANA,而不是简单的NA。
【问题讨论】:
-
试试
%in%,即ve[!ve %in% c("A", "N", "NA")] <- 'NA' -
@akrun 绝妙的方法。值得回答。