如何在 R 矩陣中查詢具有相同名稱的列的每行總和?


要查詢 R 矩陣中具有相同名稱的列的每行總和,我們可以按照以下步驟操作:

  • 首先,建立一個矩陣,其中一些列具有相同的名稱。

  • 然後,使用 tapply 以及 colnames 和 sum 函式來查詢具有相同名稱的列的每行總和。

示例

建立矩陣

讓我們建立一個如下所示的矩陣:

M<-matrix(rpois(100,10),ncol=4)
colnames(M)lt;-c("C1","C1","C2","C2")
M

輸出

執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出在您的系統上會有所不同):

      C1 C1 C2 C2
[1,]  12 15  6 16
[2,]   2 12 13 10
[3,]   8 11 10 11
[4,]   9 11  6  9
[5,]  11 12  4 10
[6,]  12 12  8 12
[7,]  14  8  5  5
[8,]   9 15  9 13
[9,]   8 14  8  6
[10,]  8 14 16  7
[11,]  8 12 18 18
[12,] 18  8 15 12
[13,]  9 13 14 10
[14,]  8 11  8 10
[15,] 11 17 12  7
[16,]  8 13 12  6
[17,] 11 14  8 15
[18,] 12  6 10  6
[19,]  4  8 10  8
[20,] 17 13  7 16
[21,]  9  9 20  5
[22,] 12  8 13 14
[23,]  9 12 12  5
[24,]  7 14 13 13
[25,] 10  7  7 13

查詢具有相同名稱的列的每行總和

使用 tapply 以及 colnames 和 sum 函式來查詢矩陣 M 中具有相同名稱的列的每行總和:

M<-matrix(rpois(100,10),ncol=4)
colnames(M)<-c("C1","C1","C2","C2")
t(apply(M,1, function(x) tapply(x,colnames(M),sum)))

輸出

      C1 C2
[1,]  25 18
[2,]  21 20
[3,]  17 19
[4,]  25 14
[5,]  14 17
[6,]  27 20
[7,]  20 20
[8,]  23 23
[9,]  21 21
[10,] 16 19
[11,] 17 21
[12,] 29 18
[13,] 23 24
[14,] 21 19
[15,] 15 19
[16,] 18 17
[17,] 19 15
[18,] 22 16
[19,] 24 14
[20,] 23 25
[21,] 16 21
[22,] 24 20
[23,] 23 18
[24,] 20 23
[25,] 23 17

更新於: 2021-11-15

90 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告