使用 dplyr::filter() 删除 NA 观测值

标签 r dplyr

我的数据如下所示:

library(tidyverse)

df <- tribble(
    ~a, ~b, ~c,
    1, 2, 3, 
    1, NA, 3, 
    NA, 2, 3
)

我可以使用 drop_na() 删除所有 NA 观察结果:

df %>% drop_na()

或者删除单列中的所有 NA 观测值(例如 a):

df %>% drop_na(a)

为什么我不能只使用常规的!=过滤管道?

df %>% filter(a != NA)

为什么我们必须使用 tidyr 中的特殊函数来删除 NA?

最佳答案

例如:

您可以使用:

df %>% filter(!is.na(a))

删除a列中的NA。

关于使用 dplyr::filter() 删除 NA 观测值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857653/

相关文章:

r - 用ggplot2绘制粗体字母?

r - 使用 dplyr 以数值变量为条件改变因子变量

r - 是否有与 plyr::join_all 等效的 dplyr 或 data.table?通过数据框列表加入?

r - 使用 dplyr 基于 R 中的其他两列自定义变异新列

r - 对具有交叉组的 tibbles 执行类似 `top_n` 的操作

r - 粘贴两个 data.table 列

r - 从一行中选择前 n 个元素并取它们的平均值

r - 将颜色插入到ggplot2中指定位置/值的刻度填充渐变中

r - 如何列出任何 R 任务 View 中未包含的包?

在 r 中使用 rename_at 从列名中删除后缀