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

R语言中对列表内数据框按id、month分组求preds均值的实现方法

解决方案

以下是两种常用的可直接运行的实现方式:

方式1:tidyverse套件实现(代码可读性更高)

使用purrr::map遍历列表中的每个数据框,搭配dplyr的分组统计逻辑完成计算:

# 加载依赖包
library(tidyverse)

# 分组计算逻辑
result <- outcome %>%
  map(~ .x %>%
        # 以id、month为分组依据
        group_by(id, month) %>%
        # 计算preds的平均值,同时取消分组避免警告
        summarise(mean_preds = mean(preds), .groups = "drop"))

运行后得到的result是和输入outcome长度一致的列表,每个元素对应原列表中数据框分组统计后的结果。

方式2:Base R实现(无需安装额外依赖包)

使用基础函数lapply遍历列表,搭配aggregate完成分组统计:

result <- lapply(outcome, function(df) {
  aggregate(preds ~ id + month, data = df, FUN = mean)
})

常见问题说明

之前使用sapply未得到预期结果,是因为sapply默认会自动简化输出结构,若要稳定返回列表格式的结果,优先使用lapply或者purrr::map即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:06:03