首页 > 解决方案 > 如何计算 R tibble 中列表的平均值?

问题描述

假设我有 R tibble

  df <- tibble(
    name = c("x", "y"),
    prob = list(c(1,2,3), c(4,5,6))
  )

如何计算“概率”字段的平均值。

预期结果是一个列表,其值为 c((1+4)/2, (2+5)/2, (3+6)/2) => c(2.5, 3.5, 4.5)

标签: rtibble

解决方案


用于Reduce获取元素加法并将其除以数据框中的行数。

Reduce(`+`, df$prob)/nrow(df)
#[1] 2.5 3.5 4.5

rowMeans和的其他替代方案colMeans

colMeans(do.call(rbind, df$prob))
rowMeans(do.call(cbind, df$prob))

推荐阅读