Funksjonene rename() og rename_with() brukes til å endre navnet på variabler. Med rename() endres navnet på enkeltvariabler, og med rename_with() endres navnene ved hjelp av funksjoner. Disse funksjonene påvirker bare navnet på kolonner (variabler). Rekkefølgen på kolonnene påvirkes ikke.
I dette kapitlet arbeider vi med data som vi genererer direkte i R, med følgende kommando:
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), # genererer 6 tilfeldige verdier fra en normalfordeling
Var5 = letters[1:6]) # de 6 første bokstavene i alfabetet
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 fVi gir Var1 og Var2 nye navn, henholdsvis Variabel1 og Variabel2. Merk at det nye variabelnavnet angis først, etterfulgt av likhetstegn og det gamle variabelnavnet.
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 fMed rename_with() kan vi bruke en funksjon på variabelnavnene. I neste eksempel gjør vi alle variabelnavn om til store bokstaver med funksjonen toupper():
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 fMed tolower() gjør du i stedet navnene om til små bokstaver.
Du kan rette rename_with() mot bestemte kolonner ved hjelp av tidy-select. I neste eksempel konverterer vi alle variabelnavn til store bokstaver dersom variabelnavnet inneholder sifferet 4:
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 fDe andre tidy-select-funksjonene ble gjennomgått i kapitlet dplyr select().
Endre variabelnavn med base R
Det finnes mange nyttige funksjoner i base R for å endre variabelnavn. Hver dataframe har et attributt kalt colnames, som inneholder variabelnavnene. Du kan skrive ut colnames med følgende kommando:
colnames(my_data)"Var1" "Var2" "Var3" "Var4" "Var5"Det betyr at variabelnavnene skrives ut som en tekstvektor, som vi kan manipulere etter eget ønske. Vi kan for eksempel legge til prefikset "ny_" foran hvert variabelnavn, med følgende kommando:
## Følgende eksempler er identiske
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 fVi kan erstatte en tekststreng i alle variabelnavn. Her erstatter vi "Var" med "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