【问题标题】:Removing certain elements form a list of lists从列表列表中删除某些元素
【发布时间】:2018-09-04 23:22:06
【问题描述】:

我正在处理一个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]}

但这没有用。

【问题讨论】:

    标签: r list loops foreach


    【解决方案1】:
    lapply(assignments,function(x) x[x!=0])
    

    【讨论】:

    • 欢迎您 = ) assignments=lapply(assignments,function(y) as.data.table(count(y[y!=0]))[freq==max(freq),x]) 此代码为您提供每个子列表最常见的非零整数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2014-04-12
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多