Les fonctions rename() et rename_with() servent à modifier le nom des variables. rename() modifie le nom de variables individuelles, tandis que rename_with() modifie les noms à l'aide de fonctions. Ces fonctions n'agissent que sur le nom des colonnes (variables) ; l'ordre des colonnes reste inchangé.
Dans ce chapitre, nous travaillons avec des données que nous générons directement dans R, à l'aide de la commande suivante :
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), # génère 6 valeurs aléatoires selon une loi normale
Var5 = letters[1:6]) # les 6 premières lettres de l'alphabet
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 fNous renommons Var1 et Var2 en Variabel1 et Variabel2 respectivement. Notez que le nouveau nom de variable est indiqué en premier, suivi du signe égal puis de l'ancien nom de variable.
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 fAvec rename_with(), nous pouvons appliquer une fonction aux noms de variables. Dans l'exemple suivant, nous mettons tous les noms de variables en majuscules avec la fonction 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 fAvec tolower(), vous convertissez au contraire les noms en minuscules.
Vous pouvez cibler rename_with() sur des colonnes précises à l'aide de tidy-select. Dans l'exemple suivant, nous convertissons en majuscules les noms de variables qui contiennent le chiffre 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 fLes autres fonctions tidy-select ont été présentées dans le chapitre dplyr select().
Modifier les noms de variables en R de base
R de base offre de nombreuses fonctions utiles pour modifier les noms de variables. Chaque data frame possède un attribut appelé colnames, qui contient les noms des variables. Vous pouvez afficher colnames avec la commande suivante :
colnames(my_data)"Var1" "Var2" "Var3" "Var4" "Var5"Les noms de variables sont donc renvoyés sous forme de vecteur de caractères, que nous pouvons manipuler à notre guise. Nous pouvons par exemple ajouter le préfixe "ny_" à chaque nom de variable, avec la commande suivante :
## Les exemples suivants sont identiques
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 fNous pouvons remplacer une chaîne de caractères dans tous les noms de variables. Ici, nous remplaçons "Var" par "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