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

如何计算R语言列表中矩阵行的均值与95%置信区间?

R语言:按行名分组计算均值与95%置信区间

我有一个长度为4的列表对象list_df,其每个元素都是一个矩阵,包含4行(行名为字符型)。需要按行名对所有矩阵中的对应行进行分组,计算每个行名对应所有值的均值,以及该均值的95%置信区间上下限,并将这些信息整理为一个新的数据框dffinal,保留原行名,包含mean、lower、upper三列。若某行名仅在单个矩阵中出现,其均值即为该值;缺失的行名不影响均值计算(仅计算存在的对应值的平均)。

可复现代码

df1 <- data.frame(
  var1 = c(1, 2, 3, 4),
  var2 = c(5, 6, 7, 8)
)

m1 <- as.matrix(df1)

rownames(m1) <-  c("red", "green", "black", "white")

df2 <- data.frame(
  var1 = c(9, 10, 11, 12),
  var2 = c(13, 14, 15, 16)
)

m2 <- as.matrix(df2)

rownames(m2) <- c("red", "green", "black", "white")

df3 <- data.frame(
  var1 = c(17, 18, 19, 20),
  var2 = c(21, 22, 23, 24)
)

m3 <- as.matrix(df3)

rownames(m3) <- c("red", "green", "white", "white")

df4 <- data.frame(
  var1 = c(25, 26, 27, 28),
  var2 = c(29, 30, 31, 32)
)

m4 <- as.matrix(df4)

rownames(m4) <- c("black", "green", "white", "white")

# Combine the matrices into a list
list_df <- list(m1, m2, m3, m4)

期望输出格式

dffinal <- data.frame(
  mean = c(mean(red), mean(green), mean(black), mean(white)),
  lower = c(lowerCI(red), lowerCI(green), lowerCI(black), lowerCI(white)),
  upper = c(upperCI(red), upperCI(green), upperCI(black), upperCI(white))
)

# 设置行名
rownames(dffinal) <-  c("red", "green", "black", "white")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:14:52