2016-10-07 186 views
-2

我有一个数据表,它有一个int列,它正在计数我已经执行的测试的迭代。所以我第一次执行测试,Table$Column == 1和第二次Table$Column == 2等等等等。查找R数据表中的第二个最大值

但是,有时候测试会中断,或者我不想使用特定测试运行的结果。我有代码比较当前运行与上一次运行,看起来像这样。

vLatest<-max(Table$Column) 
vPrevious<-max(Table$Column)-1 

但是由于我有时省略了结果,所以会中断vPrevious。我如何用一个找到“2nd”最大值的函数替换“-1”?

+0

如果你提供了一个可重复的例子,那会更好。此外,代码'max(Table $ Column)-1'只会找到最大值,然后减去1,而不是第二个最大值。 –

+0

这就是要点......我说-1不起作用。 – David

+0

[查找列号和值中第二个最高值的行]可能的重复(http://stackoverflow.com/questions/10296866/finding-the-column-number-and-value-the-of-second -hig-value-in-a-row) – jogo

回答

4

这应该工作:

vPrevious <- sort(Table$Column, decreasing=T)[2] 

我们首先按降序排序,然后选择第二个元素。

+0

这实际上只是部分正确的。这不是原来的问题,但有重复的条目(每次测试运行多个条目)。有没有办法对不同的数字进行排序? – David

+0

如果您有很多列,这不起作用 – skan