如何在 R 中找到多个矩阵对应元素的平均值?
如果多个矩阵的元素代表同一类型的特征,那么我们可能希望找到这些元素的平均值。例如,如果我们有一个列表中存储了矩阵 M1、M2、M3 和 M4,并且第一个元素代表某一特定事物的比率,比如雨季生锈铁的腐蚀速率,那么我们可能希望找到矩阵 M1、M2、M3 和 M4 的第一个元素的平均值。这个平均值可以使用 Reduce 函数找到。
示例
考虑以下矩阵及其列表:
> M1<-matrix(1:25,nrow=5) > M1
输出
[,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25
> M2<-matrix(1:25,nrow=5) > M3<-matrix(1:25,nrow=5) > M4<-matrix(1:25,nrow=5) > List_M<-list(M1,M2,M3,M4) > List_M
输出
[[1]] [,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25 [[2]] [,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25 [[3]] [,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25 [[4]] [,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25
查找每个矩阵中对应元素的平均值:
> Reduce("+",List_M)/length(List_M)
输出
[,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25
让我们再看一个例子:
示例
> M1<-matrix(sample(1:10,16,replace=TRUE),ncol=4) > M1
输出
[,1] [,2] [,3] [,4] [1,] 6 7 3 2 [2,] 10 10 3 1 [3,] 7 6 6 5 [4,] 6 7 3 10
示例
> M2<-matrix(sample(1:10,16,replace=TRUE),ncol=4) > M2
输出
[,1] [,2] [,3] [,4] [1,] 9 2 5 7 [2,] 9 4 4 3 [3,] 4 6 8 6 [4,] 3 7 7 5
示例
> M3<-matrix(sample(1:10,16,replace=TRUE),ncol=4) > M3
输出
[,1] [,2] [,3] [,4] [1,] 2 10 3 8 [2,] 8 10 2 8 [3,] 9 6 2 6 [4,] 8 8 6 9
示例
> M4<-matrix(sample(1:10,16,replace=TRUE),ncol=4) > M4
输出
[,1] [,2] [,3] [,4] [1,] 8 3 8 5 [2,] 7 5 5 7 [3,] 1 9 1 4 [4,] 10 1 8 9
示例
> List_new<-list(M1,M2,M3,M4) > List_new
输出
[[1]] [,1] [,2] [,3] [,4] [1,] 6 7 3 2 [2,] 10 10 3 1 [3,] 7 6 6 5 [4,] 6 7 3 10 [[2]] [,1] [,2] [,3] [,4] [1,] 9 2 5 7 [2,] 9 4 4 3 [3,] 4 6 8 6 [4,] 3 7 7 5 [[3]] [,1] [,2] [,3] [,4] [1,] 2 10 3 8 [2,] 8 10 2 8 [3,] 9 6 2 6 [4,] 8 8 6 9 [[4]] [,1] [,2] [,3] [,4] [1,] 8 3 8 5 [2,] 7 5 5 7 [3,] 1 9 1 4 [4,] 10 1 8 9
> Reduce("+",List_new)/length(List_new)
输出
[,1] [,2] [,3] [,4] [1,] 6.25 5.50 4.75 5.50 [2,] 8.50 7.25 3.50 4.75 [3,] 5.25 6.75 4.25 5.25 [4,] 6.75 5.75 6.00 8.25
广告