首页 > 解决方案 > 为什么 r 不排除带有过滤器的 NA

问题描述

在 RI 中有下面的 d 数据框,我在结果中得到 NA,因此 X>5 包括 NA。R不排除NA的原因是什么?

d =data.frame(group=c("NA","NA","a","b"),x = c(NA,NA,9,5),y = c(1,2,3,4))
d[d$x>5,]

我知道 dplyr 会排除它们。

标签: r

解决方案


正确的语法是:

> d[which(d$x>5),]
  group x y
3     a 9 3

如果您进行测试:

NA > 5

你得到输出:

[1] NA

和这里一样:

> d[NA,]
     group  x  y
NA    <NA> NA NA
NA.1  <NA> NA NA
NA.2  <NA> NA NA
NA.3  <NA> NA NA

推荐阅读