如何在 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+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.