我们可能想要找到一个小于特定值的值在矩阵列中的位置。这将帮助我们确定每列中关键值或阈值的位置。例如,如果我们有一个包含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