2016-10-07 12 views
-2

私は、実行したテストの繰り返しをカウントしているintカラムを持つデータテーブルを持っています。最初に私がテストを行ったのは、Table$Column == 1で、もう一度はTable$Column == 2というようになりました。Rデータテーブルの2番目の最大値の検索

しかし、テストが途切れたり、特定のテスト実行の結果を使用したくない場合があります。現在の実行と前回の実行を比較するコードがあります。

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

しかし、結果が省略されることがあるため、vPreviousを破棄します。 "-1"を "2nd"の最大値を見つける関数に置き換えるにはどうすればよいですか?

+0

再現可能な例を提供した方が良いでしょう。また、 'max(Table $ Column)-1 'というコードは、最大値を見つけて、2番目の最大値ではなく1を引いた値になります。 –

+0

それはポイントです....私は-1は動作しないと言いました。 – David

+0

[行の2番目に高い値の列番号と値を見つける](http://stackoverflow.com/questions/10296866/finding-the-column-number-and-value-the-of-second) -highest-value-in-a-row) – jogo

答えて

4

これは動作するはずです:

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

我々は最初の降順でソートした後、第2の要素を選択します。

+0

これは実際に部分的にしか正しくありません。これは元々の質問ではありませんでしたが、重複したエントリ(テスト実行ごとに複数のエントリ)があります。別の番号を並べ替える方法はありますか? – David

+0

多くの列がある場合、これは機能しません – skan

関連する問題