如何在 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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告