我有一个包含SpatialPolygonsDataFrames的列表(A
)。其中一些列表中有空值(表示没有SpatialPolygonsDataFrame)。我尝试过:
A[!sapply(unlist(A, recursive=FALSE), is.null)]
但是没有任何结果,然后我尝试了:
A_nonulls=lapply(A, na.omit)
如何从一个大列表中移除每个子列表的 null 值?
编辑:
我不能对 A 进行 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[!vapply(A,is.null,TRUE)]
? - nicolaFilter(Negate(is.null), A)
。 - akrunNULL
消失了吗? 一些仍然存在吗?你有嵌套的列表吗?对于你提供的具体示例,我的代码行(就像 @akrun 的那个)是有效的。 - nicola