Відповідь: повний посібник із використання методу 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