当右手边是向量时,%in%可用于检查NAs:
> NA %in% c(NA, 2)
[1] TRUE
> NA %in% c(1, 2)
[1] FALSE
> 1 %in% c(NA, 2)
[1] FALSE
> 1 %in% c(1, 2)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
当右侧是列表时,%in%行为不同:
> NA %in% list(NA, 2)
[1] FALSE
> NA %in% list(1, 2)
[1] FALSE
> 1 %in% list(NA, 2)
[1] FALSE
> 1 %in% list(1, 2)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
这是错误还是功能?这是在文档中描述的吗?
我们可以用 anyNA
anyNA(list(NA, 2))
Run Code Online (Sandbox Code Playgroud)
如果list具有vector长度> 1的S,然后使用recursive = TRUE
anyNA(list(c(1, 2), c(NA, 1)), recursive = TRUE)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)