O: kompletny przewodnik po metodzie tie w funkcji rankingowej
Możesz użyć funkcji Rank() w bazie R, aby zwrócić rangę wartości w wektorze.
Ta funkcja wykorzystuje następującą podstawową składnię:
rank(x, na.last=TRUE,ties.method=”średnia”)
Złoto:
- x : Wektor zawierający wartości do sklasyfikowania
- na.last : Jeśli TRUE, brakujące wartości są umieszczane na końcu. Jeśli FALSE, brakujące wartości są umieszczane jako pierwsze.
- tie.method : Jak radzić sobie z remisami (domyślnie jest to „średnie”)
Argument Ties.method funkcji Rank() określa sposób obsługi powiązań.
Ten argument akceptuje następujące opcje:
- średnia : (domyślnie) Przypisuje każdemu połączonemu elementowi średnią rangę (obiekty zajmujące 3. i 4. miejsce otrzymają ocenę 3,5)
- pierwszy : przypisuje pierwszy połączony element do najniższej rangi (elementy zajmujące pozycje 3 i 4 otrzymają odpowiednio rangi 3 i 4)
- last : Przypisuje ostatni połączony element do najniższej rangi (elementy zajmujące pozycje 3 i 4 otrzymają odpowiednio rangę 4 i 3)
- min : Przypisuje każdemu połączonemu przedmiotowi najniższą rangę (obiekty o randze 3 i 4 otrzymają rangę 3)
- max : Przypisuje każdemu połączonemu przedmiotowi najwyższą rangę (obiekty o randze 3 i 4 otrzymają rangę 4)
- losowy : przypisuje każdemu remisującemu elementowi losową rangę (każdy z elementów remisujących na 3. i 4. miejscu może otrzymać dowolną rangę)
Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą opcję z następującą ramką danych w 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
Przykład 1: Użyj Rank() z Ties.method=”średnia”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”average” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali miejsca 3 i 4, obaj otrzymali średnią rankingową: 3,5 .
Przykład 2: Użyj Rank() z Ties.method=”first”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”first” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali pozycje 3 i 4, pierwszy gracz pomiędzy nimi (gracz „C”) otrzymał najniższą rangę.
Przykład 3: Użyj Rank() z Ties.method=”last”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”last” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali pozycje 3 i 4, ostatni gracz pomiędzy nimi (gracz „D”) otrzymał najniższą rangę.
Przykład 4: Użyj Rank() z Ties.method=”min”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”min” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali miejsca 3 i 4, obaj gracze otrzymali minimalną rangę: 3 .
Przykład 5: Użyj Rank() z Ties.method=”max”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”max” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali miejsca 3 i 4, obaj gracze otrzymali maksymalną rangę: 4 .
Przykład 6: Użyj Rank() z Ties.method=”random”
Poniższy kod pokazuje, jak utworzyć nową kolumnę, która używa Rank() z Ties.method=”random” w celu przypisania rangi każdemu graczowi na podstawie wartości kolumny punktów :
#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
Ponieważ gracze C i D mieli tę samą liczbę punktów i zajmowali miejsca 3 i 4, każdemu graczowi losowo przypisano rangę 3 lub 4.
Pamiętaj, że jeśli użyjesz „random” dla tie.method , ranga przypisana do każdej wartości może się zmienić przy każdym uruchomieniu kodu.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak używać sort(), Order() i Rank() w R
Jak obliczyć rangę percentylową w R
Jak sortować według grup za pomocą dplyr