从列表中的多个列表中删除Null

geo*_*_dd 4 null r list

我有一个大的列表(A)的SpatialPolygonsDataFrames列表.某些列表具有空值(表示没有SpatialPolygonsDataFrame).我试过了 :

A[!sapply(unlist(A, recursive=FALSE), is.null)]
Run Code Online (Sandbox Code Playgroud)

但没有结果,然后我尝试:

A_nonulls=lapply(A, na.omit)
Run Code Online (Sandbox Code Playgroud)

删除较大列表中每个列表的null的正确方法是什么?

编辑:

我不能做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)
Run Code Online (Sandbox Code Playgroud)

所以我想删除空值并仅保留非空元素.

Mat*_*rde 6

使用Hadley极好的purrr包的另一种选择:

library(purrr)
compact(A)
Run Code Online (Sandbox Code Playgroud)