如何在R中根据特定条件查找矩阵列中元素的索引?


我们可能需要查找矩阵列中小于某个值的值的位置。这将有助于我们识别每一列中临界值或阈值的位置。例如,如果我们有一个包含5行5列且值在1到100范围内的矩阵M,那么我们可能需要查找每一列中小于50的值的索引,以便了解有多少列具有此类值。在R中,我们可以使用apply函数轻松实现这一点。

示例

考虑下面的矩阵:

 在线演示

M<-matrix(1:100,ncol=10)
M

输出

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1   11   21   31    41   51  61   71    81   91
[2,] 2   12   22   32    42   52  62   72    82   92
[3,] 3   13   23   33    43   53  63   73    83   93
[4,] 4   14   24   34    44   54  64   74    84   94
[5,] 5   15   25   35    45   55  65   75    85   95
[6,] 6   16   26   36    46   56  66   76    86   96
[7,] 7   17   27   37    47   57  67   77    87   97
[8,] 8   18   28   38    48   58  68   78    88   98
[9,] 9   19   29   39    49   59  69   79    89   99
[10,] 10 20   30   40    50   60  70   80    90   100

示例

apply(M>1,2,which.max)

输出

[1] 2 1 1 1 1 1 1 1 1 1

示例

apply(M>2,2,which.max)

输出

[1] 3 1 1 1 1 1 1 1 1 1

示例

apply(M>5,2,which.max)

输出

[1] 6 1 1 1 1 1 1 1 1 1

示例

apply(M>9,2,which.max)

输出

[1] 10 1 1 1 1 1 1 1 1 1

示例

apply(M<9,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 1

示例

apply(M<5,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 1

示例

apply(M<2,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 1

示例

apply(M>12,2,which.max)

输出

[1] 1 3 1 1 1 1 1 1 1 1

示例

apply(M>22,2,which.max)

输出

[1] 1 1 3 1 1 1 1 1 1 1

示例

apply(M>25,2,which.max)

输出

[1] 1 1 6 1 1 1 1 1 1 1

示例

apply(M>18,2,which.max)

输出

[1] 1 9 1 1 1 1 1 1 1 1

示例

apply(M>48,2,which.max)

输出

[1] 1 1 1 1 9 1 1 1 1 1

示例

apply(M>34,2,which.max)

输出

[1] 1 1 1 5 1 1 1 1 1 1

示例

apply(M>37,2,which.max)

输出

[1] 1 1 1 8 1 1 1 1 1 1

示例

apply(M>39,2,which.max)

输出

[1] 1 1 1 10 1 1 1 1 1 1

示例

apply(M>41,2,which.max)

输出

[1] 1 1 1 1 2 1 1 1 1 1

示例

apply(M>46,2,which.max)

输出

[1] 1 1 1 1 7 1 1 1 1 1

示例

apply(M>51,2,which.max)

输出

[1] 1 1 1 1 1 2 1 1 1 1

示例

apply(M>55,2,which.max)

输出

[1] 1 1 1 1 1 6 1 1 1 1

示例

apply(M>59,2,which.max)

输出

[1] 1 1 1 1 1 10 1 1 1 1

示例

apply(M>69,2,which.max)

输出

[1] 1 1 1 1 1 1 10 1 1 1

示例

apply(M>64,2,which.max)

输出

[1] 1 1 1 1 1 1 5 1 1 1

示例

apply(M>61,2,which.max)

输出

[1] 1 1 1 1 1 1 2 1 1 1

示例

apply(M>72,2,which.max)

输出

[1] 1 1 1 1 1 1 1 3 1 1

示例

apply(M>78,2,which.max)

输出

[1] 1 1 1 1 1 1 1 9 1 1

示例

apply(M>81,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 2 1

示例

apply(M>87,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 8 1

示例

apply(M>91,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 2

示例

apply(M>94,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 5

示例

apply(M>99,2,which.max)

输出

[1] 1 1 1 1 1 1 1 1 1 10

更新于:2020年10月17日

272 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告