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

如何对数据框(df)中每n个列向量求均值并生成新数据框

R语言数据框按固定列数分组逐行计算均值方案

需求说明

对数据框的列每2个分为一组,逐行计算每组内列的均值,最终输出仅包含分组均值结果的新数据框。

示例数据

df <- data.frame(v1=1:6,V2=7:12,V3=13:18,v4=19:24,v5=25:30,v6=31:36)

实现方法

方法1:Base R 实现(无需额外安装包)

核心思路是先对列索引按每2个为一组拆分,再对每组调用rowMeans()逐行计算均值:

# 设定每组列数,这里按需求设为2
n <- 2
# 列索引分组
col_groups <- split(seq(ncol(df)), ceiling(seq(ncol(df)) / n))
# 逐组计算行均值并转为数据框
result <- as.data.frame(sapply(col_groups, function(g) rowMeans(df[, g])))
# 自定义结果列名
colnames(result) <- paste0("mean_", names(col_groups))

方法2:tidyverse 实现

使用purrr的循环映射批量计算,代码更简洁易读:

library(dplyr)
library(purrr)

n <- 2
result <- map_dfc(seq(1, ncol(df), n), ~ rowMeans(df[, .x:(.x + n -1)])) %>%
  set_names(paste0("mean_group_", seq(ncol(df)/n)))

通用调整说明

如果需要修改每组的列数,只需修改代码中n的取值即可,无需调整其他逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:24:03