R:每列最小值的行号

Posted

技术标签:

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

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

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

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

【问题讨论】:

你在一小时前问了一个同样的问题,它在那里得到了回答...... R: Get the row and column name of the minimum element of a matrix but with minimum != 0的可能重复 对,但后来我使用了 min(which(error.mars1[,2] == minValue) @Silke 您以它为例,但我认为您的问题很清楚,您需要所有列的值,而不仅仅是第二个 :) 感谢您改变主意。我将删除我的上述评论不再相关 【参考方案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 我现在要测试的地方:) 第二个只是第一个的简短形式。

以上是关于R:每列最小值的行号的主要内容,如果未能解决你的问题,请参考以下文章

SQLPLUS 输出:如何自动获取每列的最小列宽?

仅当高于 0 时才计算每列的最小值和最大值之间的差异

如何在不包括特定值的数据框中获取最小时间值

返回 R 中矩阵的 k 个最小值的索引

获取二维数组中每列的第二个最小值

R - 创建几列非零最小值的新列