如何在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 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告