r - 如何获取列表中同名元素的平均值

标签 r list mean

我制作了一个运行引导回归的函数(使用 plm)。我已经设法获得一个列表,其中包含每个重复的列表。在该子列表中,有两个系数,每个系数都有其名称。

所以我想知道是否可以通过仅调用名称来获取每个系数的平均值。

我可以做的最小示例是重复三次,因此列表如下所示:

> dput(b)
list(list(capital = 0.185108300831744, labor = 0.342750547967331), 
    list(capital = 0.219370274172395, labor = 0.302455636315905), 
    list(capital = 0.191813145986764, labor = 0.317630069307932))

因此,期望的结果是一个包含资本均值和劳动力均值的列表,如下所示:

> dput(result)
list(capital = 0.1987639, labor = 0.3209454)

提前致谢!

最佳答案

这是一个基本的 R 解决方案:

b <- list(list(capital = 0.185108300831744, labor = 0.342750547967331), 
          list(capital = 0.219370274172395, labor = 0.302455636315905), 
          list(capital = 0.191813145986764, labor = 0.317630069307932))

my_names <- c('capital', 'labor')
result <- lapply(my_names, \(x) mean(sapply(b, '[[', x)))
names(result) <- my_names

result

$capital
[1] 0.1987639

$labor
[1] 0.3209454

或者,我们可以利用列表可以被视为数据框的事实:

result <- colMeans(do.call(rbind, lapply(b, as.data.frame)))

  capital     labor 
0.1987639 0.3209454

关于r - 如何获取列表中同名元素的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73674802/

相关文章:

r - 从 data.frame 中的组中获取均值和标准差

R - XTS : Get the first dates and values for each month from a daily time series with missing rows

r - 通过移动平均滑动窗口方法,使用 rollmean、filter、rollapply 或其他 R 工具平滑 2D 矩阵

python - 组合常见搭配的 NLP 过程

python - 如何拆分逗号分隔的数据并从 python 中的数据创建列表?

R 绘制连续数据的平均值 + SD

r - 在没有互联网的情况下安装R软件包

list - 将列表矩阵转换为正则矩阵

python - 列表中列的操作

python - 如何计算数据框中一系列范围的平均值?