How to subset data in R without losing NA rows?
上面使用逻辑索引的子集。 有没有办法在 dplyr 中做到这一点?
另外, dplyr 什么时候自动删除 NA? 根据我的经验,当我过滤掉特定字符串时,它会删除 NA,例如:
b = a %>% filter(col != "str")
我认为这不会排除
NA
值(value)观,但确实如此。但是当我使用其他格式的过滤时,它不会自动排除NA
,例如:b = a %>% filter(!grepl("str", col))
我想了解过滤器的这个特性。我将不胜感激任何帮助。谢谢!
最佳答案
dplyr::filter
的文档说......“与基本子集不同,条件评估为 NA 的行将被删除。”NA != "str"
计算结果为 NA
所以下降了 filter
.!grepl("str", NA)
返回 TRUE
,所以保留。
如果你想要 filter
保留 NA
,你可以做 filter(is.na(col)|col!="str")
关于r - 如何使用 dplyr 在不丢失 NA 行的情况下过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378437/