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