如何在 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

更新于: 2020年9月4日

780 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告