首页 > 解决方案 > R基于匹配的嵌套列表名称对嵌套列表元素应用函数

问题描述

假设我有一个命名的嵌套列表l,其中包含命名数字向量的子列表,每个长度为 1:

l <- list("L1" = list('a' = 1, 'b' = 2), "L2" = list('a'= 2, 'c' = 1, 'd' = 1))

我正在努力在基础 R 中找到一种方法来应用一个函数,例如sum用于所有具有相似名称的匹配子列表(例如 l$L1$a 和 l$L2$a,其总和为 3)。例如,使用sumin应用的结果l将是一个命名向量res

> res
a b c d 
3 2 1 1

在(我的)现实生活中,列表l具有可变和未知的子列表的数量和长度L1L2...,...,以及类似的,要求和的数字向量的名称和数量(a... b)也是可变的,并且未知。但是,列表的深度始终如图所示。

标签: rlistnested

解决方案


一种dplyr选择可能是:

bind_rows(l) %>%
 summarise_all(~ sum(., na.rm = TRUE))

      a     b     c     d
  <dbl> <dbl> <dbl> <dbl>
1     3     2     1     1

推荐阅读