A: полное руководство по методу связывания в функции ранжирования.
Вы можете использовать функцию Rank() в базе R, чтобы вернуть ранг значений в векторе.
Эта функция использует следующий базовый синтаксис:
Rank(x, na.last=TRUE,ties.method=»среднее»)
Золото:
- x : вектор, содержащий значения для классификации.
- na.last : если TRUE, пропущенные значения ставятся последними. Если FALSE, первыми ставятся пропущенные значения.
- галстук.метод : как обрабатывать ничьи (по умолчанию «среднее»)
Аргумент 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)
- Случайный : присваивает каждому связанному элементу случайный ранг (любой из элементов, занимающих 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» для связывания.метод , ранг, присвоенный каждому значению, может меняться каждый раз, когда вы запускаете код.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как использовать sort(), order() и Rank() в R
Как рассчитать процентильный ранг в R
Как сортировать по группам с помощью dplyr