ben*_*ett 6 regex r negation gsub
我有一个字符串向量:
ve <- c("N","A","A","A","N","ANN","NA","NFNFNAA","23","N","A","NN", "parnot", "important", "notall")
Run Code Online (Sandbox Code Playgroud)
我只想在此向量中保留三个可能的值:N、A和NA。
因此,我想替换任何不是N或A的元素NA。
我怎样才能实现这个目标?
我已经尝试过以下方法:
gsub(ve, pattern = '[^NA]+', replacement = 'NA')
gsub(ve, pattern = '[^N|^A]+', replacement = 'NA')
Run Code Online (Sandbox Code Playgroud)
但这些效果不佳,因为它们将每个字符串中的每个“A”或“N”实例替换为 NA。所以在某些情况下我最终会得到NANANANANANA, 而不是简单地NA.
如果我们正在寻找固定匹配,则使用%in%否定!并将其分配给'NA'
ve[!ve %in% c("A", "N", "NA")] <- 'NA'
Run Code Online (Sandbox Code Playgroud)
请注意,在 中R,缺失值未加引号NA且未加引号。希望它是一个不同的类别,并建议将类别名称更改为不同的名称,以避免将来在解析时出现混淆