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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *