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