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

R语言如何按位置对多个dataframe的对应元素求平均值

当两个dataframe的维度、列顺序、列名完全匹配时,最简洁的实现方式是直接做逐元素算术运算:

dataC <- (dataA + dataB) / 2

运行后输出结果和预期完全一致:

> dataC
  A B
1 2 3
2 2 3
3 2 3
4 2 3
5 2 3

如果想要避免因两个dataframe结构不匹配导致的计算错误,可以提前加校验逻辑:

# 校验维度和列名完全一致后再计算
if (identical(dim(dataA), dim(dataB)) && identical(colnames(dataA), colnames(dataB))) {
  dataC <- (dataA + dataB) / 2
} else {
  stop("两个dataframe结构不匹配,无法计算逐位置均值")
}

如果习惯使用tidyverse套件,也可以用purrr的逐列映射方法实现:

library(purrr)
dataC <- map2_dfr(dataA, dataB, ~ (.x + .y) / 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:36:04