Erstellen Sie neue Variablen in R mit mutate() und case_when()

Von Fabian
Kategorie: R
Tags: dplyr
Lesezeit: 2 Minuten

Oft möchten Sie möglicherweise eine neue Variable in einem Dataframe in R basierend auf einer bestimmten Bedingung erstellen. Glücklicherweise ist dies mit den Funktionen mutate() und case_when() aus dem Paket dplyr einfach zu bewerkstelligen.

Dieses Tutorial zeigt einige Beispiele für die Verwendung dieser Funktionen mit dem folgenden Dataframe:

# Dataframe erstellen
df <- data.frame(player = c('a', 'b', 'c', 'd', 'e'),
                 position = c('G', 'F', 'F', 'G', 'G'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#Dataframe anzeigen
df

  player position points rebounds
1      a        G     12        5
2      b        F     15        7
3      c        F     19        7
4      d        G     22       12
5      e        G     32       11

Beispiel 1: Neue Variable basierend auf einer vorhandenen Variablen erstellen

Der folgende Code zeigt, wie Sie eine neue Variable namens "scorer" basierend auf dem Wert in der Punktespalte erstellen:

library(dplyr)

# Definieren einer neue Variable 'scorer' mit mutate() und case_when()
df %>%
  mutate(scorer = case_when(points < 15 ~ 'low',
                           points < 25 ~ 'med',
                           points < 35 ~ 'high'))

  player position points rebounds scorer
1      a        G     12        5    low
2      b        F     15        7    med
3      c        F     19        7    med
4      d        G     22       12    med
5      e        G     32       11   high

Beispiel 2: Erstellen einer neuen Variablen basierend auf mehreren vorhandenen Variablen

Der folgende Code zeigt, wie Sie eine neue Variable namens "type" basierend auf dem Wert in der Player- und Positionsspalte erstellen:

library(dplyr)

# Definieren einer neuen Variable 'Typ' mit mutate() und case_when()
df %>%
  mutate(type = case_when(player == 'a' | player == 'b' ~ 'starter',
                            player == 'c' | player == 'd' ~ 'backup',
                            position == 'G' ~ 'reserve'))

  player position points rebounds    type
1      a        G     12        5 starter
2      b        F     15        7 starter
3      c        F     19        7  backup
4      d        G     22       12  backup
5      e        G     32       11 reserve```

Der folgende Code zeigt, wie Sie eine neue Variable mit dem Namen "valueAdded" basierend auf dem Wert in den Spalten "points" und "rebounds" erstellen:

```r
library(dplyr)

# Definieren Sie die  neue Variable 'valueAdded' mit mutate() und case_when()
df %>%
  mutate(valueAdded = case_when(points <= 15 & rebounds <=5 ~ 2,
                                points <=15 & rebounds > 5 ~ 4,
                                points < 25 & rebounds < 8 ~ 6,
                                points < 25 & rebounds > 8 ~ 7,
                                points >=25 ~ 9))

  player position points rebounds valueAdded
1      a        G     12        5          2
2      b        F     15        7          4
3      c        F     19        7          6
4      d        G     22       12          7
5      e        G     32       11          9

Zusätzliche Ressourcen

So benennen Sie Spalten in R um
So entfernen Sie Spalten in R
So filtern Sie Zeilen in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: