n番目に大きい値を取得する

[OS] ALL
[リリース] SAS 9.1以降
[キーワード] Base, function, LARGEST, nth largest

[質問]

最大値、最小値はそれぞれMAX関数、MIN関数で取得可能ですが、n番目に大きい値を取得することは可能でしょうか。

[回答]

SAS9から新たに追加されたLARGEST関数を使用することにより、簡単にn番目に大きい値を取得することが可能です。

LARGEST関数の構文

  LARGEST(n, 引数1<, 引数2 ...>)

説明
n何番目に大きい値を取得するかを指定する
引数数値、もしくは数値変数

使用例

  DATA _NULL_;
    x=1;
    y=3;
    z=5;
    n=LARGEST(2,x,y,z);
    PUT n=;
  RUN;

上記の使用例を実行すると、結果は以下のようになります。


  n=3