如何在R矩阵中查找所有行值都相等的列数?


为了找到R矩阵中所有行值都相等的列数,我们可以按照以下步骤操作:

  • 首先,创建一个矩阵。

  • 然后,使用sum函数结合length和apply函数来查找所有行值都相等的列数。

示例1

创建矩阵

让我们创建一个如下所示的矩阵:

M1<-matrix(rpois(50,5),ncol=2)
M1

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):

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

查找所有行值都相等的列数

使用sum函数结合length和apply函数来查找矩阵M1中所有行值都相等的列数:

M1<-matrix(rpois(50,5),ncol=2)
sum(apply(M1, 1, function(x) length(unique(x))==1))

输出

[1] 7

示例2

创建矩阵

让我们创建一个如下所示的矩阵:

M2<-matrix(sample(1:5,50,replace=TRUE),ncol=2)
M2

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):

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

查找所有行值都相等的列数

使用sum函数结合length和apply函数来查找矩阵M2中所有行值都相等的列数:

M2<-matrix(sample(1:5,50,replace=TRUE),ncol=2)
sum(apply(M2, 1, function(x) length(unique(x))==1))

输出

[1] 6

更新于:2021年11月10日

280 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告