如何计算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
相关产品推荐
相关产品推荐

