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