You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将lapply计算的均值作为新列添加到列表各dataframe中?

为列表中的每个DataFrame添加加权均值列

方法1:基于已计算的均值列表添加列

你已经得到了各分组的加权均值列表Mean,可以用Map()函数将每个DataFrame与对应的均值配对,快速新增Mean列:

# 为每个DataFrame添加填充好均值的Mean列
List_with_mean <- Map(function(df, mean_val) {
  df$Mean <- mean_val
  df
}, List, Mean)

Map()会自动按顺序匹配List中的DataFrame和Mean中的均值,给每个DataFrame的所有行填充对应分组的加权均值。

方法2:一步完成计算与列添加(更简洁高效)

如果不需要单独保留Mean列表,也可以直接在lapply()中同时完成加权均值计算和列添加,省去中间变量:

List_with_mean <- lapply(List, function(x) {
  # 计算当前分组的加权均值
  weighted_mean <- weighted.mean(x$Value, w = x$Count / sum(x$Count), na.rm = TRUE)
  # 新增Mean列并填充均值
  x$Mean <- weighted_mean
  x
})

验证结果

可以查看任意分组的结果,确认Mean列是否正确填充:

# 查看分组A的处理结果
print(List_with_mean$A)

输出示例:

Set Value Count      Mean
1   A     1    10 2.090909
4   A     4    13 2.090909
7   A     7    16 2.090909

内容的提问来源于stack exchange,提问作者Mikin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:57:11