完全ガイド: r で sort()、order()、および rank() を使用する方法


人々がよく混同する R の 3 つの機能は、ソート順序付け、およびランキングです。

これらの関数の違いは次のとおりです。

  • sort()はベクトルを昇順にソートします
  • order() は、ベクトルの各要素のインデックスをソートされた順序で返します。
  • Rank()はベクトルの各要素にランクを割り当てます (最小 = 1)。

次の例は、これらの各関数を実際に使用する方法を示しています。

例: ベクトルで sort()、order()、および Rank() を使用する

次のコードは、4 値ベクトルでsort()order() 、およびRank()関数を使用する方法を示しています。

 #createvector
x <- c(0, 20, 10, 15)

#sort vector
sort(s)

[1] 0 10 15 20

#order vector
order(s)

[1] 1 3 4 2

#rank vector
rank(x)

[1] 1 4 2 3

各関数の動作は次のとおりです。

1. sort()関数は、単純にベクトル値を昇順に並べ替えました。

2. order()関数は、ソートされた順序で各要素のインデックスを返しました。

  • これらのインデックス値に基づいて元のベクトル値を並べ替えると、ソートされたベクトルが得られます。
  • たとえば、order() は、最初に値をインデックス位置1に置くように指示します。これは元のベクトルでは 0 です。
  • 次に、 order() は、値をインデックス位置3に配置するように指示します。これは、元のベクトルの 10 です。
  • 次に、 order() は値をインデックス位置4 、つまり元のベクトルの 15 に配置するように指示します。
  • 次に、 order() は、インデックス位置2 、つまり元のベクトルの 20 に値を配置するように指示します。
  • 最終結果は、ソートされたベクトル – 0、10、15、20 になります。

3. Rank()関数は、最小値に 1 を使用して、ベクトルの各要素にランクを割り当てます。

  • たとえば、Rank() は、元のベクトルの最初の値が最小 (ランク = 1) であり、元のベクトルの 2 番目の値が最大 (ランク = 4) であることを示します。

次の構文を使用すると、 sort()order() 、およびRank()を逆の順序で使用できることに注意してください。

 #createvector
x <- c(0, 20, 10, 15)

#sort vector in decreasing order
sort(x, decreasing= TRUE )

[1] 20 15 10 0

#order vector in decreasing order
order(x, decreasing= TRUE )

[1] 2 4 3 1

#rank vector in reverse order (largest value = 1)
rank(-x)

[1] 4 1 3 2

これらの結果は、前の例で生成された結果とはまったく逆であることに注意してください。

注: Rank() 関数を使用してタイを処理する方法

tie.method引数を使用して、 Rank()関数を使用するときにタイを処理する方法を指定できます。

 rank(x, ties. method = ' average ')

次のオプションのいずれかを使用して、リンクの処理方法を指定できます。

  • Average : (デフォルト) リンクされた各項目に平均ランクを割り当てます (3 番目と 4 番目にランクされた項目には両方とも 3.5 のランクが与えられます)。
  • first : 最初にリンクされた要素を最も低いランクに割り当てます (3 番目と 4 番目にランクされた要素にはそれぞれランク 3 と 4 が与えられます)
  • min : リンクされた各項目を最も低いランクに割り当てます (3 番目と 4 番目にランクされた項目は両方とも 3 のランクを受け取ります)。
  • max : リンクされた各項目に最高のランクを割り当てます (3 番目と 4 番目にランクされた項目は両方とも 4 のランクを受け取ります)
  • random : 同順位の各要素にランダムなランクを割り当てます (3 位と 4 位に同順位のどちらかの要素がいずれかのランクを受け取る可能性があります)

シナリオによっては、これらの方法の 1 つを他の方法よりも使用する方が合理的である場合があります。

追加リソース

次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。

Rで複数の列でソートする方法
R でデータフレームを日付で並べ替える方法
R でパーセンタイル ランクを計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です