如何获取矩阵各列最小值对应的行索引?
获取矩阵每列最小值对应的行索引(R语言)
针对你给出的矩阵m1,要获取每一列最小值的行索引,用apply()函数就能轻松搞定,具体步骤如下:
- 先确认你的矩阵创建正确:
m1 <- matrix(6:1, nrow=3, ncol=2) m1 # 输出结果和你描述的一致: # [,1] [,2] # [1,] 6 3 # [2,] 5 2 # [3,] 4 1
- 使用
apply()按列执行which.min():
apply(m1, 2, which.min)
运行这段代码后,你会得到预期的输出:
[1] 3 3
简单解释一下:
apply()的第二个参数设为2,表示按列处理矩阵(如果设为1就是按行处理);- 第三个参数
which.min()是我们要对每一列执行的函数,它会返回当前列中最小值所在的行位置; - 因为
apply()会自动把每一列转换成单独的向量传给which.min(),所以刚好能得到每列对应的行索引结果。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

