Die Funktionen rename() und rename_with() dienen dazu, die Namen von Variablen zu ändern. Mit rename() werden einzelne Variablen umbenannt, mit rename_with() werden die Namen mithilfe von Funktionen geändert. Diese Funktionen wirken sich ausschließlich auf die Namen der Spalten (Variablen) aus. Die Reihenfolge der Spalten bleibt unverändert.
In diesem Kapitel arbeiten wir mit Daten, die wir mit folgendem Befehl direkt in R erzeugen:
my_data <- tibble(Var1 = c(NA, 5, 9, 5, 3, 4),
Var2 = c(1, NA, 3, 6, 1, 12),
Var3 = c("Ja", "Nej", NA, "Ja", "Ja", "Ja"),
Var4 = rnorm(6), # erzeugt 6 normalverteilte Zufallswerte
Var5 = letters[1:6]) # die ersten 6 Buchstaben des Alphabets
my_data Var1 Var2 Var3 Var4 Var5
NA 1 Ja -1.13 a
5 NA Nej -0.144 b
9 3 NA -0.114 c
5 6 Ja -0.343 d
3 1 Ja -1.08 e
4 12 Ja 0.914 fWir benennen Var1 und Var2 in Variabel1 bzw. Variabel2 um. Beachten Sie, dass zuerst der neue Variablenname angegeben wird, gefolgt von einem Gleichheitszeichen und dem alten Variablennamen.
my_data |>
rename(Variabel1=Var1,
Variabel2=Var2) Variabel1 Variabel2 Var3 Var4 Var5
NA 1 Ja -1.13 a
5 NA Nej -0.144 b
9 3 NA -0.114 c
5 6 Ja -0.343 d
3 1 Ja -1.08 e
4 12 Ja 0.914 fMit rename_with() können wir eine Funktion auf die Variablennamen anwenden. Im nächsten Beispiel schreiben wir alle Variablennamen mit der Funktion toupper() in Großbuchstaben:
my_data |>
rename_with(toupper) VAR1 VAR2 VAR3 VAR4 VAR5
NA 1 Ja -1.13 a
5 NA Nej -0.144 b
9 3 NA -0.114 c
5 6 Ja -0.343 d
3 1 Ja -1.08 e
4 12 Ja 0.914 fMit tolower() wandeln Sie die Namen stattdessen in Kleinbuchstaben um.
Sie können rename_with() mithilfe von tidy-select gezielt auf bestimmte Spalten anwenden. Im nächsten Beispiel wandeln wir einen Variablennamen nur dann in Großbuchstaben um, wenn er die Ziffer 4 enthält:
my_data |>
rename_with(toupper, contains("4")) Var1 Var2 Var3 VAR4 Var5
NA 1 Ja -1.13 a
5 NA Nej -0.144 b
9 3 NA -0.114 c
5 6 Ja -0.343 d
3 1 Ja -1.08 e
4 12 Ja 0.914 fDie übrigen tidy-select-Funktionen wurden im Kapitel dplyr select() besprochen.
Variablennamen in Base R ändern
Base R bietet viele nützliche Funktionen, um Variablennamen zu ändern. Jeder Data Frame besitzt ein Attribut namens colnames, das die Variablennamen enthält. Sie können colnames mit folgendem Befehl ausgeben:
colnames(my_data)"Var1" "Var2" "Var3" "Var4" "Var5"Die Variablennamen werden also als Textvektor ausgegeben, den wir nach Belieben bearbeiten können. Beispielsweise können wir jedem Variablennamen mit folgendem Befehl das Präfix "ny_" voranstellen:
## Die folgenden Beispiele sind identisch
colnames(my_data) <- paste0("ny_", colnames(my_data))
my_data ny_Var1 ny_Var2 ny_Var3 ny_Var4 ny_Var5
NA 1 Ja -0.573 a
5 NA Nej -0.471 b
9 3 NA -0.139 c
5 6 Ja 0.0464 d
3 1 Ja 1.07 e
4 12 Ja -1.85 fWir können eine Zeichenkette in allen Variablennamen ersetzen. Hier ersetzen wir "Var" durch "Variabel_":
colnames(my_data) <- str_replace(names(my_data), "Var", "Variabel_")
my_data Variabel_1 Variabel_2 Variabel_3 Variabel_4 Variabel_5
NA 1 Ja 0.598 a
5 NA Nej -0.348 b
9 3 NA 1.09 c
5 6 Ja -0.237 d
3 1 Ja 1.08 e
4 12 Ja -1.74 f