在R语言中筛选指定列含NA值的数据行的问题
解决方法
你的问题出在代码里多了一个取反运算符!,原代码筛选的是PID_A和PID_B都没有NA值的行,和你要的「存在NA值的行」正好相反。
正确的Base R代码
直接去掉取反符号即可:
example_missing <- subset(example, subset = is.na(PID_A) | is.na(PID_B))
可选:用dplyr包的写法(更直观)
如果习惯用tidyverse风格,也可以这样写:
library(dplyr) example_missing <- example %>% filter(is.na(PID_A) | is.na(PID_B))
结果验证
运行后会得到原数据中第2、6、7行,也就是text列对应eg2、eg5、eg6的行,完全符合你要的「PID_A或PID_B存在NA值」的筛选要求。
内容的提问来源于stack exchange,提问作者jo_
相关产品推荐
相关产品推荐

