Відповідь: повний посібник із використання методу tie.method у функції ранжирування


Ви можете використовувати функцію Rank() в базовому R, щоб повернути ранг значень у векторі.

Ця функція використовує такий базовий синтаксис:

rank(x, na.last=TRUE,ties.method=”середній”)

золото:

  • x : вектор, який містить значення для класифікації
  • na.last : якщо TRUE, відсутні значення ставляться останніми. Якщо FALSE, пропущені значення ставляться першими.
  • tie.method : Як обробляти зв’язки (за замовчуванням «середній»)

Аргумент Ties.method функції Rank() визначає, як слід обробляти зв’язки.

Цей аргумент приймає такі варіанти:

  • середній : (за замовчуванням) призначає кожному пов’язаному елементу середній ранг (елементи на 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”

Наступний код показує, як створити новий стовпець, який використовує Rank() з Ties.method=”average” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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: використання Rank() із Ties.method=”first”

Наступний код показує, як створити новий стовпець, який використовує Rank() із Ties.method=”first” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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, перший гравець між ними (гравець “C”) отримав найнижчий ранг.

Приклад 3: використання Rank() із Ties.method=”last”

Наступний код показує, як створити новий стовпець, який використовує Rank() з Ties.method=”last” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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, останній гравець між ними (гравець “D”) отримав найнижчий ранг.

Приклад 4: використання Rank() із Ties.method=”min”

Наступний код показує, як створити новий стовпець, який використовує Rank() із Ties.method=”min” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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: використання Rank() із Ties.method=”max”

Наступний код показує, як створити новий стовпець, який використовує Rank() із Ties.method=”max” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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”

Наступний код показує, як створити новий стовпець, який використовує Rank() із Ties.method=”random” для призначення рангу кожному гравцеві на основі значення стовпця очок :

 #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.

Зауважте, що коли ви використовуєте “random” для tie.method , ранг, призначений кожному значенню, може змінюватися кожного разу, коли ви запускаєте код.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як використовувати sort(), order() і Rank() у R
Як розрахувати процентиль рангу в R
Як сортувати за групою за допомогою dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *