【发布时间】:2015-05-05 15:07:18
【问题描述】:
我的数据如下所示:
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?
【问题讨论】:
-
price != "NA"应该可以工作 -
因为任何与
NA的比较,包括NA==NA,都会返回NA -
@Metrics:这很奇怪(对我来说)这行得通。你能解释一下为什么会这样吗?
-
顺便说一句,这和
dplyr/filter没有任何关系。 -
@user3731467 我没有
diamonds数据,但在示例数据上,Metrics 的建议有效