如何在R中找到矩阵的逐行模式?

没有内置函数可以在R中找到模式,因此我们需要创建一个模式,然后将其应用于矩阵的行。模式的功能如下创建-

mode<-function(x){which.max(tabulate(x))}

现在考虑我们有一个名为M的矩阵,那么我们可以应用上面的函数,如下所示-

apply(M2,1,mode)

例1

> M1<-matrix(sample(1:2,25,replace=TRUE),ncol=5)
> M1
输出结果
     [,1] [,2] [,3] [,4] [,5]
[1,]  2    2    1    2   2
[2,]  2    2    2    2   1
[3,]  2    2    1    1   1
[4,]  2    1    1    1   1
[5,]  2    1    1    2   2
> apply(M1,1,mode)
输出结果
[1] 2 2 1 1 2

例2

> M2<-matrix(sample(1:2,100,replace=TRUE),ncol=5)
> M2
输出结果
     [,1] [,2] [,3] [,4] [,5]
[1,]  1    1    2    2    1
[2,]  2    1    1    2    1
[3,]  2    2    1    1    1
[4,]  2    1    1    2    2
[5,]  2    1    1    2    2
[6,]  1    2    1    1    2
[7,]  1    1    2    1    2
[8,]  2    2    1    2    1
[9,]  2    1    1    2    2
[10,] 1    1    2    2    2
[11,] 1    1    2    1    2
[12,] 1    2    2    2    1
[13,] 2    2    2    2    1
[14,] 2    1    2    2    1
[15,] 1    2    1    1    2
[16,] 2    2    1    2    1
[17,] 2    2    1    1    1
[18,] 2    1    1    2    1
[19,] 1    1    1    2    1
[20,] 2    1    1    2    2
> apply(M2,1,mode)
输出结果
[1] 1 1 1 2 2 1 1 2 2 2 1 2 2 2 1 2 1 1 1 2

范例3

> M3<-matrix(sample(1:3,100,replace=TRUE),ncol=5)
> M3
输出结果
     [,1] [,2] [,3] [,4] [,5]
[1,]  1    3    3    2    1
[2,]  2    3    1    2    2
[3,]  2    2    3    3    1
[4,]  1    3    1    3    2
[5,]  3    1    2    1    2
[6,]  2    3    1    1    1
[7,]  2    2    2    3    1
[8,]  1    2    2    2    2
[9,]  2    1    2    1    2
[10,] 1    3    1    2    1
[11,] 2    1    3    1    1
[12,] 1    1    3    2    2
[13,] 2    1    1    1    2
[14,] 2    1    3    3    2
[15,] 1    2    3    1    2
[16,] 1    2    1    2    1
[17,] 3    1    1    3    2
[18,] 3    3    3    3    1
[19,] 3    2    3    1    1
[20,] 3    3    2    2    1
> apply(M3,1,mode)
输出结果
[1] 1 2 2 1 1 1 2 2 2 1 1 1 1 2 1 1 1 3 1 2

例子4

> M4<-matrix(sample(9:10,100,replace=TRUE),ncol=5)
> M4
输出结果
      [,1] [,2] [,3] [,4] [,5]
[1,]  10    10   9    10   9
[2,]  9     9    10   9    9
[3,]  9     9    9    10   10
[4,]  10    9    9    10   10
[5,]  10    10   9    10   9
[6,]  10    10   9    10   10
[7,]  9     9    9    10   9
[8,]  9     10   9    10   9
[9,]  9     9    9    9    9
[10,] 9     10   9    10   9
[11,] 10    10   9    9    9
[12,] 9     9    9    9    9
[13,] 10    10   10   9    10
[14,] 10    9    10   10   10
[15,] 9     10   9    10   9
[16,] 9     10   9    10   9
[17,] 9     10   10   9    10
[18,] 9     9    9    9    10
[19,] 10    9    9    10   9
[20,] 10    9    9    10   9

> apply(M4,1,mode)
输出结果
[1] 10 9 9 10 10 10 9 9 9 9 9 9 10 10 9 9 10 9 9 9