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

如何在R中计算数据框两个区间的均值与标准差?

在R中实现多列区间的均值与标准差计算

我需要在R中计算数据框内两个数值区间的均值与标准差,但当前方法结果不符合数学预期。比如对于X6,排除6月(2023-06-01列)的所有月份均值应为12,但通过分别计算两个区间均值再取平均的方式得到了错误值,而Excel的AVERAGE函数可以直接处理多区间并得到正确结果。

数据框结构

structure(list(Type = c("A", "B", "C", "C", "A", "B"), `Row Labels` = c("X6", 
"X7", "X8", "X9", "X11", "X12"), `2023-03-01` = c(14, 50, 75, 
100, 25, 50), `2023-04-01` = c(16, 50, 75, 100, 25, 50), `2023-05-01` = c(14, 
50, 75, 100, 50, 100), `2023-06-01` = c(11, 50, 75, 100, 75, 
150), `2023-07-01` = c(9, 50, 75, 100, 125, 250), `2023-08-01` = c(9, 
50, 75, 100, 200, 400), `2023-09-01` = c(11, 50, 75, 100, 325, 
650), `2023-10-01` = c(11, 50, 75, 100, 525, 1050), Avg = c(12, 
50, 75, 100, 182.142857142857, 364.285714285714), `Std Dev` = c(2.70801280154532, 
0, 0, 0, 186.365616080711, 372.731232161421), X1 = c(14.6666666666667, 
50, 75, 100, 33.3333333333333, 66.6666666666667), X2 = c(10, 
50, 75, 100, 293.75, 587.5), X3 = c(12.3333333333333, 50, 75, 
100, 163.541666666667, 327.083333333333)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

当前错误代码

library(readxl)

Book1 <- read_excel("C:/X/X/X- X/X/Book1.xlsx",sheet = "Sheet4")
dput(Book1)

Book1$X1 <- rowMeans(Book1[,3:5])
Book1$X2 <- rowMeans(Book1[,7:10])
Book1$X3 <- (Book1$X1+Book1$X2)/2

dput(Book1)

问题原因

当前方法错误在于:两个区间的列数不同(3列 vs 4列),直接对两个区间的均值取平均,相当于给每个区间相同的权重,而实际上应该把所有目标列合并后计算整体均值与标准差,这样才符合数学上的正确计算逻辑。

解决方案

直接选取所有需要计算的列(排除6月列),然后逐行计算均值和标准差:

library(readxl)

# 读取数据
Book1 <- read_excel("C:/X/X/X- X/X/Book1.xlsx",sheet = "Sheet4")

# 定义需要计算的列:3-5月(3:5)和7-10月(7:10),合并成一个列索引向量
target_cols <- c(3:5, 7:10)

# 计算整体均值
Book1$Correct_Avg <- rowMeans(Book1[, target_cols])

# 计算整体标准差(na.rm = TRUE 处理缺失值,根据需求调整)
Book1$Correct_StdDev <- apply(Book1[, target_cols], 1, sd, na.rm = TRUE)

# 查看结果
dput(Book1)

结果验证

运行以上代码后,X6的Correct_Avg会得到正确的12,和Excel的计算结果一致,标准差也会对应正确的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:05:41