【问题标题】:R: row number of the minimum value in each columnR:每列最小值的行号
【发布时间】:2014-07-23 10:46:13
【问题描述】:

我有一个矩阵,现在我搜索每个列的最小值。我有下一个代码:

error.mars1[which(error.mars1==0)] = NA
minValue = min(error.mars1[,2],na.rm=T)

我使用 NA 是因为我想要一个非零的最小值。所以这是为了获得第 2 列的平均值。但现在我想要这是最小值的行号。有人可以帮我吗?

【问题讨论】:

  • 你在一小时前问了一个同样的问题,它在那里得到了回答......
  • 对,但后来我使用了 min(which(error.mars1[,2] == minValue)
  • @Silke 您以它为例,但我认为您的问题很清楚,您需要所有列的值,而不仅仅是第二个 :) 感谢您改变主意。我将删除我的上述评论不再相关

标签: r matrix minimum


【解决方案1】:

尝试:

which(error.mars1[,2] == minValue)

【讨论】:

    【解决方案2】:

    一般情况下,您所询问的内容是:

    apply(error.mars1, 2, function(x) which(x == min(x, na.rm=TRUE)))
    

    或者:

    apply(error.mars1, 2, which.min)
    

    【讨论】:

    • 列的第二个元素必须为 2,并且您的第二个提案给出的结果与第一个相同(我测试过)。我编辑了你的答案。
    • 谢谢。我只是没有 R 我现在要测试的地方:) 第二个只是第一个的简短形式。
    猜你喜欢
    • 2013-08-21
    • 2016-09-27
    • 1970-01-01
    • 2018-10-02
    • 2015-01-09
    • 2012-12-15
    • 2023-03-08
    • 2021-07-17
    • 1970-01-01
    相关资源
    最近更新 更多