R 从列表中的多个列表中删除空值

R 从列表中的多个列表中删除空值,r,list,null,R,List,Null,我有一个很大的空间多边形框架列表(a)。某些列表具有空值(表示没有空间多边形数据帧)。我试过: A[!sapply(unlist(A, recursive=FALSE), is.null)] 但没有结果,然后我尝试: A_nonulls=lapply(A, na.omit) 删除较大列表中每个列表的空值的正确方法是什么 编辑: 我不能做str(A),因为A有1000个列表,而且很大。第一个列表中的第一个元素如下所示: [[1]] NULL [[2]] NULL [[3]] NULL [

我有一个很大的空间多边形框架列表(
a
)。某些列表具有空值(表示没有空间多边形数据帧)。我试过:

A[!sapply(unlist(A, recursive=FALSE), is.null)]
但没有结果,然后我尝试:

A_nonulls=lapply(A, na.omit)
删除较大列表中每个列表的空值的正确方法是什么

编辑:

我不能做str(A),因为A有1000个列表,而且很大。第一个列表中的第一个元素如下所示:

[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
class       : SpatialPolygons 
features    : 1 
extent      : 722951.5, 726848.9, 4325874, 4329654  (xmin, xmax, ymin, ymax)
所以我想去掉空值,只保留非空元素

你可以试试这个

A[!sapply(A, is.null)]

我们可以尝试
Filter

Filter(Negate(is.null), A) 

另一个使用哈德利超赞purr套装的选项:

library(purrr)
compact(A)

可能
A[!vapply(A,is.null,TRUE)]
?nicola我试过了,但是空值仍然在listsTry
过滤器中(否定(is.null),A)
您必须更具体一些。一些
NULL
消失了?还有一些?有嵌套列表吗?以你的具体例子来说,我的行(作为@akrun的行)是有效的。@akrun谢谢你对我有效!