查找 R 矩阵中每行的最小值所在的列索引
要查找 R 矩阵中每行最小值所在的列索引,我们可以使用 apply 函数。
例如,如果我们有一个名为 M 的矩阵,那么我们可以使用以下命令找到每行最小值所在的列:-
apply(M,1,which.min)
示例 1
考虑下面给出的矩阵:-
M1<-matrix(round(rexp(80),1),ncol=4) M1
创建了以下数据框
[,1] [,2] [,3] [,4] [1,] 1.3 0.1 0.6 1.0 [2,] 0.7 2.5 0.0 0.5 [3,] 0.9 0.7 0.9 0.8 [4,] 0.5 1.0 0.6 0.5 [5,] 0.3 1.2 1.6 0.4 [6,] 0.7 0.5 0.1 1.9 [7,] 1.4 0.1 0.1 0.2 [8,] 2.6 1.4 0.1 1.1 [9,] 0.1 2.9 0.6 0.5 [10,] 1.9 1.6 1.0 1.6 [11,] 2.6 0.7 0.3 3.5 [12,] 0.4 1.4 1.0 1.9 [13,] 0.8 0.5 0.8 4.3 [14,] 0.2 1.7 0.8 0.4 [15,] 0.1 0.9 0.3 1.0 [16,] 2.2 1.9 0.3 2.2 [17,] 0.2 0.4 1.9 0.6 [18,] 0.8 1.2 3.4 0.4 [19,] 0.7 1.4 2.0 0.2 [20,] 0.7 0.2 1.0 2.5
要在上面创建的数据框中找到 M1 中每行最小值所在的列索引,请将以下代码添加到上面的代码段中:-
M1<-matrix(round(rexp(80),1),ncol=4) apply(M1,1,which.min)
输出
如果您将上面给出的所有代码段作为一个程序执行,它将生成以下输出:-
[1] 2 3 2 1 1 3 2 3 1 3 3 1 2 1 1 3 1 4 4 2
示例 2
考虑下面给出的矩阵:-
M2<-matrix(round(rnorm(80),2),ncol=4) M2
创建了以下数据框
[,1] [,2] [,3] [,4] [1,] 0.35 -0.41 -0.97 0.29 [2,] 0.88 -0.36 -0.13 0.23 [3,] 0.44 -0.26 -0.83 0.57 [4,] 1.46 -1.78 0.89 -0.07 [5,] -0.02 -0.98 0.75 1.32 [6,] 0.69 -1.08 0.75 0.84 [7,] -1.67 -1.16 -0.49 0.60 [8,] -0.98 -0.61 -1.12 0.97 [9,] -0.53 0.00 0.40 -1.01 [10,] -0.15 0.01 1.64 0.94 [11,] -0.01 0.50 0.18 -1.96 [12,] 0.01 0.95 -0.40 -1.06 [13,] -1.20 0.90 -0.83 0.88 [14,] -0.09 -1.44 -0.72 0.39 [15,] -0.41 0.87 0.27 0.57 [16,] -1.15 -1.31 0.76 -0.76 [17,] -0.42 0.88 -1.61 0.58 [18,] -0.99 1.21 0.05 0.25 [19,] -0.68 1.15 0.79 0.23 [20,] -0.44 0.64 0.16 0.54
要在上面创建的数据框中找到 M2 中每行最小值所在的列索引,请将以下代码添加到上面的代码段中:-
M2<-matrix(round(rnorm(80),2),ncol=4) apply(M2,1,which.min)
输出
如果您将上面给出的所有代码段作为一个程序执行,它将生成以下输出:-
[1] 3 2 3 2 2 2 1 3 4 1 4 4 1 2 1 2 3 1 1 1
示例 3
考虑下面给出的矩阵:-
M3<-matrix(rpois(100,10),ncol=5) M3
创建了以下数据框
[,1] [,2] [,3] [,4] [,5] [1,] 16 15 5 3 10 [2,] 8 12 7 8 9 [3,] 8 18 13 11 9 [4,] 11 13 13 12 12 [5,] 12 10 11 8 9 [6,] 12 11 11 9 9 [7,] 9 6 5 10 5 [8,] 9 11 11 8 11 [9,] 15 9 9 9 11 [10,] 9 14 11 9 7 [11,] 12 14 8 16 9 [12,] 8 13 12 15 15 [13,] 6 11 12 8 10 [14,] 10 13 8 15 13 [15,] 7 13 7 10 6 [16,] 16 6 10 9 13 [17,] 7 12 12 11 10 [18,] 10 11 10 20 12 [19,] 14 13 7 8 12 [20,] 11 10 6 11 20
要在上面创建的数据框中找到 M3 中每行最小值所在的列索引,请将以下代码添加到上面的代码段中:-
考虑下面给出的矩阵:-
M3<-matrix(rpois(100,10),ncol=5) apply(M3,1,which.min)
输出
如果您将上面给出的所有代码段作为一个程序执行,它将生成以下输出:-
[1] 4 3 1 1 4 4 3 4 2 5 3 1 1 3 5 2 1 1 3 3
广告