如何查找列表中R是否包含空值?

时间:2020-05-20 11:24:00

标签: r

%in%的运行不符合逻辑预期:

> 1 %in% list(1,NULL,3)
[1] TRUE
> NULL %in% list(1,NULL,3)
logical(0)

如果列表包含NULL元素,如何获得TRUE响应?

4 个答案:

答案 0 :(得分:3)

您可以在is.null中使用sapply

any(sapply(list(1,NULL,3), is.null))
#[1] TRUE

答案 1 :(得分:2)

您也可以将NULL包装在list()中,这似乎很有效

> list(NULL) %in% list(1,3)
[1] FALSE

> list(NULL) %in% list(1,NULL,3)
[1] TRUE

> list(NULL) %in% list(Inf,-Inf,numeric(0),NA, NaN)
[1] FALSE

答案 2 :(得分:1)

您可以套用/套用列表以检查长度= 0

> sapply( list(1,NULL,3), function(x) length(x) == 0 )
[1] FALSE  TRUE FALSE

然后您可以将其包装在any()

答案 3 :(得分:1)

使用Map的Base R:

pageIndex

使用mapply的Base R:

any(unlist(Map(is.null, lst)))

数据:

any(mapply(is.null, lst, SIMPLIFY = TRUE))
相关问题