如何在R语言中获取矩阵中k个最小值的排序索引
获取矩阵中4个最小值的索引并排序
我来帮你解决这个问题,用R语言可以很简洁地实现需求,以下是完整的可复现代码和解释:
set.seed(123) # 确保结果可复现 m <- matrix(runif(16,1,20), 8,1) # 一步得到排序后的4个最小值索引 result <- sort(order(m[,1])[1:4]) result
运行这段代码后,你会得到期望的输出:
[1] 1 3 6 7
代码细节解释:
order(m[,1]):对矩阵第一列的元素从小到大排序,返回的是原始元素的索引序列,这里得到的是6 1 3 7 2 4 8 5,对应着从最小到最大元素的位置。[1:4]:提取这个序列的前4个值,也就是4个最小值对应的原始索引:6 1 3 7。sort():把这4个索引本身按从小到大的顺序排列,最终得到你需要的有序结果。
如果你想先查看未排序的4个最小值索引,单独运行order(m[,1])[1:4]就能得到6 1 3 7,再排序后就是目标结果。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

