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谢谢你对我有效!