【问题标题】:Return the indices of the k smallest values of a matrix in R返回 R 中矩阵的 k 个最小值的索引
【发布时间】:2018-08-29 21:46:54
【问题描述】:

建议我在 R 中有以下矩阵:

set.seed(123)  # the only way to have a reproducible result
m <- matrix(runif(16,1,20), 8,1)

 m
          [,1]
[1,]  6.463973
[2,] 15.977798
[3,]  8.770562
[4,] 17.777331
[5,] 18.868878
[6,]  1.865573
[7,] 11.034004
[8,] 17.955962

我现在希望以排序的方式返回 4 个最小值的索引。在该示例中,我试图获得一个包含索引 6, 1, 3, 7 的对象,从第一个最小值到第四个最小值排序。谢谢!

【问题讨论】:

  • 您是要搜索整个矩阵还是一次只搜索一列?
  • 你在找order(m)[1:4]
  • sapply(1:4, function(x) which(m == sort(m)[x])).
  • @Onyambu:太好了,可能是最短的方法!

标签: r indexing minimum


【解决方案1】:

此函数按升序对矩阵元素进行排序。选项 index.return 设置为 TRUE 将添加除了排序值之外的索引。 $ix 允许你直接返回排序后的索引

sort(m,index.return = TRUE)$ix

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2012-12-10
    • 2010-12-22
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多