代码之家  ›  专栏  ›  技术社区  ›  Chris T.

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

  •  0
  • Chris T.  · 技术社区  · 8 年前

    我正在做一个 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
    

    从中提取给定列表中最常见的“非零”整数。然而,在一些列表中 列表 对象中,零似乎是最常见的整数,例如第二个列表 [[2]] 。这给我的分析带来了一些问题。

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

    我之前试验过的一种方法是循环浏览这个列表并使用 != 排除等于零的值的步骤

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

    但这不起作用。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Frostic    8 年前
    lapply(assignments,function(x) x[x!=0])