如何在 R 中检查向量是否包含 NA 值?


R 中的 NA 值表示“不可用”,意味着缺失值。如果一个向量即使只有一个 NA 值,那么该向量的计算就会变得有点困难,因为我们将不得不删除该 NA、替换它或在计算过程中忽略它。要执行这些操作中的任何一项,我们都必须对代码进行一些更改,因此,在执行任何操作之前,最好检查向量是否包含 NA。这可以通过结合使用任何函数和 is.na 来实现。

示例

> x1<-c(1,2,3,2)
> x1
[1] 1 2 3 2
> any(is.na(x1))
[1] FALSE
> x2<-c(1,2,3,2,NA)
> x2
[1] 1 2 3 2 NA
> any(is.na(x2))
[1] TRUE
> x3<-c(4,5,6,"",2,8,7)
> x3
[1] "4" "5" "6" "" "2" "8" "7"
> any(is.na(x3))
[1] FALSE
> x4<-c(4,5,6,"NA",2,8,7)
> x4
[1] "4" "5" "6" "NA" "2" "8" "7"
> any(is.na(x4))
[1] FALSE
> x5<-c(4,5,6,4,2,8,7,NA,4,5,NA,NA)
> x5
[1] 4 5 6 4 2 8 7 NA 4 5 NA NA
> any(is.na(x5))
[1] TRUE
> x6<-rep(c(15,NA,10),times=10)
> x6
 [1] 15 NA 10 15 NA 10 15 NA 10 15 NA 10 15 NA 10 15 NA 10 15 NA 10 15 NA 10 15
[26] NA 10 15 NA 10
> any(is.na(x6))
[1] TRUE
> x7<-rep(c(15,"NA",10),times=10)
> x7
 [1] "15" "NA" "10" "15" "NA" "10" "15" "NA" "10" "15" "NA" "10" "15" "NA" "10"
[16] "15" "NA" "10" "15" "NA" "10" "15" "NA" "10" "15" "NA" "10" "15" "NA" "10"
> any(is.na(x7))
[1] FALSE
> x8<-1:1000000
> any(is.na(x8))
[1] FALSE
> x9<-rep(c(1,2,3,4,5,6,7,8,9,10),times=500000)
> any(is.na(x9))
[1] FALSE
> x10<-rep(c(1,2,3,4,5,6,7,8,9,10),times=5000000)
> any(is.na(x10))
[1] FALSE

尺寸较小的向量获得答案所需的时间较短,而尺寸非常大的向量则需要稍长的时间才能让我们知道我们的向量中是否存在 NA。

更新于: 2020-08-11

2K+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告