A: ランキング関数のtie.methodの完全ガイド
ベース R でRank()関数を使用して、ベクトル内の値のランクを返すことができます。
この関数は次の基本構文を使用します。
ランク(x, na.last=TRUE,ties.method=”平均”)
金:
- x : 分類する値を含むベクトル
- na.last : TRUE の場合、欠損値は最後に配置されます。 FALSE の場合、欠損値が最初に配置されます。
- tie.method : タイの処理方法 (デフォルトは「平均」)
Rank()関数のTies.method引数は、タイの処理方法を指定します。
この引数は次のオプションを受け入れます。
- Average : (デフォルト) リンクされた各項目に平均ランクを割り当てます (3 番目と 4 番目にランクされた項目には両方とも 3.5 のランクが与えられます)。
- first : 最初にリンクされた要素を最も低いランクに割り当てます (3 番目と 4 番目にランクされた要素にはそれぞれランク 3 と 4 が与えられます)
- last : 最後にリンクされた要素を最も低いランクに割り当てます (3 番目と 4 番目にランクされた要素はそれぞれ 4 と 3 のランクを受け取ります)
- min : リンクされた各項目を最も低いランクに割り当てます (3 番目と 4 番目にランクされた項目は両方とも 3 のランクを受け取ります)。
- max : リンクされた各項目に最高のランクを割り当てます (3 番目と 4 番目にランクされた項目は両方とも 4 のランクを受け取ります)
- random : 同順位の各要素にランダムなランクを割り当てます (3 位と 4 位に同順位の要素のいずれかがいずれかのランクを受け取る可能性があります)
次の例は、R の次のデータ フレームで各オプションを実際に使用する方法を示しています。
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), dots=c(5, 8, 10, 10, 17)) #view data frame df player points 1 to 5 2 B 8 3 C 10 4 D 10 5 E 17
例 1: Rank() を Ties.method=”average” で使用する
次のコードは、 Ties.method=”average”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = “ average ”) #view updated data frame df player points points_rank 1 to 5 1.0 2 B 8 2.0 3 C 10 3.5 4 D 10 3.5 5 E 17 5.0
プレーヤー C と D は同じポイント数を持ち、3 位と 4 位にいたため、両者ともランキング平均3.5を獲得しました。
例 2: Ties.method=”first” で Rank() を使用する
次のコードは、 Ties.method=”first”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " first ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 4 5 E 17 5
プレーヤー C と D は同じポイント数を持ち、ポジション 3 と 4 を占めていたため、これら 2 人の間の最初のプレーヤー (プレーヤー「C」) が最も低いランクを獲得しました。
例 3: Rank() を Ties.method=”last” で使用する
次のコードは、 Ties.method=”last”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " last ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
プレーヤー C と D は同じポイント数を持ち、ポジション 3 と 4 を占めていたため、これら 2 人の間の最後のプレーヤー (プレーヤー「D」) が最も低いランクを獲得しました。
例 4: Rank() を Ties.method=”min” で使用する
次のコードは、 Ties.method=”min”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " min ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 3 5 E 17 5
プレーヤー C と D は同じポイント数を持ち、ポジション 3 と 4 にいたため、両方のプレーヤーは最低ランク3を受け取りました。
例 5: Ties.method=”max” で Rank() を使用する
次のコードは、 Ties.method=”max”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " max ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 4 5 E 17 5
プレーヤー C と D は同じポイント数を持ち、ポジション 3 と 4 にいたため、両プレーヤーは最大ランク4を受け取りました。
例 6: Rank() を Ties.method=”random” で使用する
次のコードは、 Ties.method=”random”を指定したRank()を使用して、ポイント列の値に基づいて各プレーヤーにランクを割り当てる新しい列を作成する方法を示しています。
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " random ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
プレーヤー C と D は同じポイント数を持ち、ポジション 3 と 4 にいたため、各プレーヤーにはランダムに 3 または 4 のランクが割り当てられました。
tie.methodに「random」を使用すると、コードを実行するたびに各値に割り当てられるランクが変わる可能性があることに注意してください。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
R で sort()、order()、Rank() を使用する方法
R でパーセンタイル ランクを計算する方法
dplyrを使用してグループ別に並べ替える方法