从列表列表中删除某些元素

时间:2018-03-26 18:03:13

标签: r list loops foreach

我正在处理一个list对象,其中包含数百个随机整数“列表”,格式如下:

assignments <- list(
  as.integer(c(1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3)),
  as.integer(c(1, 1, 1, 0, 0, 0, 3, 3)),
  as.integer(c(1, 3, 3, 3, 3, 3, 3, 2, 2)),
  as.integer(c(1, 2, 0, 3, 2, 3, 2, 2, 2))
)

[[1]]
 [1] 1 1 1 1 1 1 2 2 2 3 3

[[2]]
 [1] 1 1 1 0 0 0 3 3

[[3]]
[1] 1 3 3 3 3 3 3 2 2

[[4]]
[1] 1 2 0 3 2 3 2 2 2

从中提取给定列表中最常见的“非零”整数。但是,在此list对象的某些列表中,零似乎是最常见的整数,例如第二个列表[[2]]。在我的分析中产生了一些问题。

是否有循环列表列表从这个大列表的每个列表中删除某些元素,例如零?

我之前尝试过的一种方法是遍历此列表列表并使用!=排除等于零的值

for(i in assignments){i[i != 0]}

但这不起作用。

1 个答案:

答案 0 :(得分:1)

lapply(assignments,function(x) x[x!=0])