r - 如何使用 dplyr 在不丢失 NA 行的情况下过滤数据

标签 r filter dplyr

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/

相关文章:

r - dplyr sample_n 按组,每组具有唯一的大小参数

R:根据多个其他列中的匹配字符串创建单个新列

r - 使用 tidyeval 创建重复列

r - 最大样本

r - 使用R在一个图形上绘制多个线段

r - Mutate_at ,通过指定列名添加列

python - 将函数应用于数据框中列标题包含特定字符串的列

r - 在 R 中查找有理函数的局部最大值

css - Google Chrome CSS `filter: blur();` 问题 – `filter: none;` 不受尊重

python - python 过滤列表重复项