r-过滤表包括NA线

时间:2014-10-14 21:06:35

标签: r matrix filter na

我需要过滤表格:

示例表:

tabla<-data.frame( b=c(4,8, NA,4,12,8,NA), a=c(1))

如果我使用以下内容过滤,我会得到:

> nrow(tabla[tabla$b<=7,])
[1] 4

> tabla[tabla$b<=7,]
      b  a
1     4  1
NA   NA NA
4     4  1
NA.1 NA NA

如何在矩阵过滤中排除NA?

1 个答案:

答案 0 :(得分:1)

您可以使用否定的is.na

tabla[tabla$b <= 7 & !is.na(tabla$b), ]
#   b a
# 1 4 1
# 4 4 1

另一个选项是na.omit。但请注意,这将删除任何列中包含NA的所有行。因此,如果您在NA列中有a,但在b列中没有,那么该行仍将被删除。您可能不希望这样,但知道处理NA值是另一个很好的功能。

na.omit(tabla)[na.omit(tabla)$b <= 7, ]
#   b a
# 1 4 1
# 4 4 1