如何在R矩阵中找到具有相同名称的列的总行数?

要查找 R 矩阵中具有相同名称的列的总行数,我们可以按照以下步骤操作 -

  • 首先,创建一个矩阵,其中一些列具有相同的名称。

  • 然后,使用 tapply 以及 colnames 和 sum 函数来查找具有相同名称的列的行总数。

示例

创建矩阵

让我们创建一个矩阵,如下所示 -

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

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

      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

猜你喜欢