[英]R Subsetting Specific Value Also Returns NA?
我剛開始學習R,遇到了如下一段代碼
vec_1 <- c("a","b", NA, "c","d")
# create a subet of all elements which equal "a"
vec_1[vec_1 == "a"]
結果是
## [1] "a" NA
我只是好奇,因為我將vec_1
為值“ a”,為什么NA
也出現在我的結果中?
這是因為== NA
的任何結果都是NA
。 即使NA == NA
也是NA
。
這是vec_1 == "a"
的輸出-
[1] TRUE FALSE NA FALSE FALSE
並且NA
不是TRUE
或FALSE
因此當您用NA
子集化任何內容時,您會得到NA
。 看一下這個 -
vec_1[NA]
[1] NA NA NA NA NA
當處理NA
, R
嘗試提供最有用的答案,即T | NA
T | NA
返回TRUE
是因為NA
無關緊要。 這里還有更多示例-
T | NA
[1] TRUE
F | NA
[1] NA
T & NA
[1] NA
F & NA
[1] FALSE
R無法測試與NA
相等性。 您可以使用%in%
運算符-
5 %in% NA
[1] FALSE
"a" %in% NA
[1] FALSE
vec_1[vec_1 %in% "a"]
[1] "a"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.