Umkodieren von Werten mit dplyr

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

Gelegentlich können Sie daran interessiert sein, bestimmte Werte in einem Dataframe in R neu zu codieren. Glücklicherweise kann dies problemlos mit der Funktion recode() aus dem Paket dplyr durchgeführt werden.

Dieses Tutorial zeigt einige Beispiele für die praktische Verwendung dieser Funktion.

Beispiel 1: Eine einzelne Spalte in einem Dataframe neu codieren

Der folgende Code zeigt, wie eine einzelne Spalte in einem Dataframe neu codiert wird:

library(dplyr)

# Dataframe erstellen 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

# Dataframe anzeigen
df

# Ändern Sie 'Win' und 'Loss' in '1' und '0'
df %>% mutate(result=recode(result, 'Win'='1', 'Loss'='0'))

       player points result
1      A     24      1
2      B     29      0
3      C     13      1
4      D     15      0

Beispiel 2: Neukodieren einer einzelnen Spalte in einem Dataframe und Bereitstellen von NA-Werten

Der folgende Code zeigt, wie eine einzelne Spalte in einem Dataframe neu codiert und jedem Wert, dem nicht explizit ein neuer Wert zugewiesen wird, der Wert NA zugewiesen wird:

library(dplyr)

# Dataframe erstellen 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

# Dataframe anzeigen
df

#Ändern Sie 'Win' in '1' und geben Sie allen anderen Werten den Wert NA
df %>% mutate(result=recode(result, 'Win'='1', .default=NA_character_))

       player points result
1      A     24      1
2      B     29      <NA>
3      C     13      1
4      D     15      <NA>

Beispiel 3: Mehrere Spalten in einem Dataframe neu codieren

Der folgende Code zeigt, wie mehrere Spalten gleichzeitig in einem Dataframe neu codiert werden:

library(dplyr)

# Dataframe erstellen 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

# Umkodieren der 'player' und 'result' Spalten
df %>% mutate(player=recode(player, 'A'='Z'),
              result=recode(result, 'Win'='1', 'Loss'='0'))

       player points result
1      Z     24      1
2      B     29      0
3      C     13      1
4      D     15      0

Die vollständige Dokumentation zur Funktion recode() finden Sie hier.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: