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

在R中计算列表各元素指定向量的平均值并转为data.frame

批量计算列表中各data.frame的x向量均值

问题描述

我有一个包含2000多个元素的大型list,每个元素是包含x、y两个向量的data.frame,且不同元素内的向量长度不一致。示例数据如下:

new_list <- list(data.frame(x = c(1,2,3),
                            y = c(3,4,5)),
                 data.frame(x = c(3,2,2,2,3,8),
                            y = c(5,2,3,5,6,7)),
                 data.frame(x = c(3,2,2,1,1),
                            y = c(5,2,3,3,2)))

需要仅对列表中每个元素的x向量计算平均值,最终得到如下格式的data.frame:

df_mean <- data.frame(x=c(2,3.333,1.8))

解决方案

以下两种方法都可以高效处理大型列表:

方法1:基础R实现

利用sapply遍历列表,提取每个data.frame的x列并计算均值,最后转为data.frame:

df_mean <- data.frame(x = sapply(new_list, function(df) mean(df$x)))

方法2:使用purrr包(tidyverse生态)

如果习惯tidyverse工具链,purrr::map_dbl可以更简洁地完成操作:

library(purrr)
df_mean <- data.frame(x = map_dbl(new_list, ~ mean(.x$x)))

运行上述代码后,得到的df_mean即为目标结果,其中均值会保留精确小数(示例中的3.333是近似值,实际计算结果为10/3≈3.333333)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:27