【发布时间】:2018-02-05 13:55:00
【问题描述】:
我试图找出一种方法来找到矩阵每一行的第二个最大位置,就像 max.col 函数一样,但是对于第二个最大值。 有任何想法吗? 谢谢!
【问题讨论】:
-
一种选择是获取最大元素并将其替换为最小值。然后做 max.col,但用
apply更容易做,即apply(m1, 1, function(x) sort(x, decreasing = TRUE)[2]) -
@akrun,使用
apply确实更容易,但是如果你有它们(并且希望它们以某种方式处理),你不需要更多的代码来处理它们。还需要which(x==sort(x,decreasing=TRUE)[2])或类似的东西来获取列位置吗? -
@MikeH。如果您使用
max.col,则存在 NA 时存在潜在风险。关于关系,尚不清楚 OP 是否在数据集中有它。如果有联系,是的,需要解决。但是,max.col 也失败了,因为它只有第一个、最后一个或随机的选项 -
@akrun,你是对的。我想这取决于 OP 的预期用途
-
谢谢大家!我正在尝试基于神经网络的分类器,我需要找到第二个最可能的预测类。我想知道,我还可以保存最高和第二高列的值吗?因为这些是每个类的后验概率,以后可能也会有用