如何在R中矩阵的每一行中找到n个最大值的索引?

如果矩阵有多列并且每行中的值都不同,那么最大数量将等于列数。假设我们要在名为M的矩阵中提取每行两个最大值的索引,然后可以使用以下命令-

t(apply(M,1,order,decreasing=TRUE)[1:2,])

例1

> M1<-matrix(rpois(80,5),ncol=4)

> M1

输出结果
      [,1] [,2] [,3] [,4]

 [1,]    7    4    4   10

 [2,]    7    1    4    3

 [3,]    9    6    6    4

 [4,]    6    5    3    3

 [5,]    3    3    2    4

 [6,]    5    6    2    2

 [7,]    4    7    3   10

 [8,]    6    0   11    6

 [9,]    1    6    2    2

[10,]    4    9    4    9

[11,]    4   10    3    6

[12,]    3    9    3   11

[13,]    5    4    7    2

[14,]    6    7    6    6

[15,]    2    5    6    3

[16,]    2    5    8    2

[17,]    0    3    1    6

[18,]    6   10    6    4

[19,]    3    4    5    5

[20,]    4    5    8    4

在每个M1中找到两个最大值的索引-

> t(apply(M1,1,order,decreasing=TRUE)[1:2,])
输出结果
      [,1] [,2]

 [1,]    4    1

 [2,]    1    3

 [3,]    1    2

 [4,]    1    2

 [5,]    4    1

 [6,]    2    1

 [7,]    4    2

 [8,]    3    1

 [9,]    2    3

[10,]    2    4

[11,]    2    4

[12,]    4    2

[13,]    3    1

[14,]    2    1

[15,]    3    2

[16,]    3    2

[17,]    4    2

[18,]    2    1

[19,]    3    4

[20,]    3    2

例2

> M2<-matrix(rpois(80,50),ncol=4)

> M2

输出结果
      [,1] [,2] [,3] [,4]

 [1,]   65   52   42   63

 [2,]   52   49   43   54

 [3,]   50   35   49   57

 [4,]   52   42   36   52

 [5,]   48   36   45   43

 [6,]   49   65   62   51

 [7,]   52   46   56   51

 [8,]   43   51   41   53

 [9,]   53   40   51   55

[10,]   52   48   48   41

[11,]   54   44   48   42

[12,]   43   34   58   54

[13,]   41   50   51   45

[14,]   47   40   56   39

[15,]   49   48   42   38

[16,]   50   56   47   56

[17,]   55   48   39   52

[18,]   49   39   48   37

[19,]   53   49   58   50

[20,]   38   57   48   59

在每个M2中找到两个最大值的索引-

> t(apply(M2,1,order,decreasing=TRUE)[1:2,])
输出结果
      [,1] [,2]

 [1,]    1    4

 [2,]    4    1

 [3,]    4    1

 [4,]    1    4

 [5,]    1    3

 [6,]    2    3

 [7,]    3    1

 [8,]    4    2

 [9,]    4    1

[10,]    1    2

[11,]    1    3

[12,]    3    4

[13,]    3    2

[14,]    3    1

[15,]    1    2

[16,]    2    4

[17,]    1    4

[18,]    1    3

[19,]    3    1

[20,]    4    2

以上是 如何在R中矩阵的每一行中找到n个最大值的索引? 的全部内容, 来源链接: utcz.com/z/359607.html

回到顶部