如何根据 R 中的某些条件查找矩阵列中元素的索引?

r programmingserver side programmingprogramming更新于 2025/4/12 15:22:17

我们可能想要找到矩阵列中小于某个值的值的位置。这将帮助我们确定每列中临界值或阈值的位置。例如,如果我们有一个矩阵 M,它包含 5 行和 5 列,值的范围在 1 到 100 之间,那么我们可能想要找到每列中小于 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

相关文章