So sortieren sie variablen mit dplyr nach gruppen


Sie können die folgende grundlegende Syntax verwenden, um Variablen in dplyr zu gruppieren:

 df %>% arrange (group_var, numeric_var) %>%
    group_by (group_var) %>% 
    mutate (rank = rank(numeric_var))

Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit dem folgenden Datenrahmen verwendet werden kann:

 #create data frame
df <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
                 rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))

#view data frame
df

   team points rebounds
1 to 12 5
2 to 28 7
3 to 19 7
4 A 22 12
5 B 32 11
6 B 45 4
7 B 22 10
8 C 28 7
9 C 13 8
10 C 19 8

Beispiel 1: Rangfolge in aufsteigender Reihenfolge

Der folgende Code zeigt, wie die von Spielern erzielten Punkte in aufsteigender Reihenfolge und nach Team gruppiert sortiert werden:

 library (dplyr)

#rank points scored, grouped by team
df %>% arrange (team, points) %>%
    group_by (team) %>% 
    mutate (rank = rank(points))

# A tibble: 10 x 4
# Groups: team [3]
   team points rebounds rank
          
 1 A 12 5 1
 2 A 19 7 2
 3 A 22 12 3
 4 A 28 7 4
 5 B 22 10 1
 6 B 32 11 2
 7 B 45 4 3
 8 C 13 8 1
 9 C 19 8 2
10 C 28 7 3

Beispiel 2: Rangfolge in absteigender Reihenfolge

Wir können die erzielten Punkte auch in absteigender Reihenfolge nach Gruppen klassifizieren, indem wir ein negatives Vorzeichen in der Rank()- Funktion verwenden:

 library (dplyr)

#rank points scored in reverse, grouped by team
df %>% arrange (team, points) %>%
    group_by (team) %>% 
    mutate (rank = rank(-points))

# A tibble: 10 x 4
# Groups: team [3]
   team points rebounds rank
          
 1 to 12 5 4
 2 A 19 7 3
 3 A 22 12 2
 4 A 28 7 1
 5 B 22 10 3
 6 B 32 11 2
 7 B 45 4 1
 8 C 13 8 3
 9 C 19 8 2
10 C 28 7 1

Wie man mit Gleichständen im Ranking umgeht

Wir können das Argument tie.method verwenden, um anzugeben, wie wir bei der Reihenfolge numerischer Werte mit Bindungen umgehen sollen.

 rank(points, ties. method = ' average ')

Sie können eine der folgenden Optionen verwenden, um festzulegen, wie mit Links umgegangen wird:

  • Durchschnitt : (Standard) Gibt jedem verknüpften Element den durchschnittlichen Rang (Elemente auf Platz 3 und 4 würden beide einen Rang von 3,5 erhalten)
  • first : Weist dem ersten verknüpften Element den niedrigsten Rang zu (Elemente auf Platz 3 und 4 würden Rang 3 bzw. 4 erhalten)
  • min : Weist jedem verknüpften Element den niedrigsten Rang zu (Elemente auf Platz 3 und 4 würden beide einen Rang von 3 erhalten)
  • max : Weist jedem verknüpften Element den höchsten Rang zu (Elemente auf Platz 3 und 4 würden beide einen Rang von 4 erhalten)
  • random : Weist jedem Element mit Gleichstand einen zufälligen Rang zu (jedes der Elemente mit Gleichstand auf dem 3. und 4. Platz könnte einen der beiden Ränge erhalten)

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere allgemeine Funktionen in dplyr ausführen:

So wählen Sie mit dplyr die erste Zeile nach Gruppe aus
So berechnen Sie relative Häufigkeiten mit dplyr
So kodieren Sie Werte mit dplyr neu
So ersetzen Sie NA durch Zero in dplyr

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert