删除列表中的元素

时间:2015-06-15 13:51:10

标签: r list dataframe

有一个包含子列表的R列表 - 我使用list [[i]]编制索引 - 这些列表中的一些是空的 - 它们只是NULL。如何删除这些并保留存储矩阵的那些?

list[[1]]
 [1,]   99   45
  [2,]   92   45
  [3,]   11   45
  [4,]   99   45
  [5,]   92   45
  [6,]   99    2
  [7,]   99   22
  [8,]   99    2

没关系,但是

list[[4]] NULL

认为

delete.NULLs  <-  function(x.list){   # delele null/empty entries in a list
    x.list[unlist(lapply(x.list, length) != 0)]
}

会起作用,但这很慢。我的列表有4000万个子列表,我想大多数都没有数字......

1 个答案:

答案 0 :(得分:6)

您可以使用Filter。例如:

my_list <- list(A = 10, B = NULL, C = rnorm(10), D = NULL)

#remove nulls
Filter(Negate(is.null), my_list)