如何找到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