我需要过滤表格:
示例表:
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?
答案 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