我的数据如下所示:

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的特殊功能来删除NAs?

推荐答案

来自@Ben Bolker:

[T] his与dplyr::filter()没有具体关系

来自@Marat Talipov:

[A] ny与NA的比较,包括NA==NA,将返回NA

来自@farnsy的related answer篇文章:

==运算符并不像您期望的那样对待NA.

Think of NA as meaning "I don't know what's there". The correct answer to 3 > NA is obviously NA because we don't know if the missing value is larger than 3 or not. Well, it's the same for NA == NA. They are both missing values but the true values could be quite different, so the correct answer is "I don't know."

R不知道你在分析什么,所以

R相关问答推荐

使用R中的小鼠()进行插补后观察次数显着变化

R通过字符串中的索引连接数据帧r

基于R中的GPS点用方向箭头替换点

在R底座中更改白天和夜晚的背景 colored颜色

gt()从gt为相同内容的单元格 colored颜色 不同?

R for循环返回到先前值

在某些栏和某些条件下,替换dfs列表中的NA

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

R函数‘paste`正在颠倒其参数的顺序

R中1到n_1,2到n_2,…,n到n_n的所有组合都是列表中的向量?

按组计算列中1出现的间隔年数

有没有可能用shiny 的书签恢复手风琴面板?

使用不同的定性属性定制主成分分析中点的 colored颜色 和形状

在具有多个响应变量的比例堆叠条形图上方添加总计

Rmarkdown::Render vs Source()

快速合并R内的值

如何使用ggplot2根据绘图中生成的斜率对小平面进行排序?

roxygen2正在处理太多的文件

如何在刻面和翻转堆叠条形图中对齐geom_text()

将美学添加到ggploy中的文本标签