Comment utiliser la fonction de transmute dplyr dans R (avec exemples)
Vous pouvez utiliser la fonction transmute() dans R pour ajouter de nouvelles variables calculées à un bloc de données et supprimer toutes les variables existantes.
Cette fonction utilise la syntaxe de base suivante :
df %>% transmute(var_new = var1 * 2)
Dans cet exemple, une nouvelle variable appelée var_new sera créée en multipliant une variable existante appelée var1 par 2.
Les exemples suivants montrent comment utiliser la fonction transmute() avec le bloc de données suivant dans R :
#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 B 90 28 28
3 C 86 31 24
4 D 88 39 24
5 E 95 34 28
Exemple 1 : utilisez transmute() pour créer une nouvelle variable
Le code suivant montre comment utiliser transmute() pour créer une nouvelle variable :
library(dplyr)
#create new variable called points2
df %>% transmute(points2 = points * 2)
points2
1 198
2 180
3 172
4 176
5 190
Les valeurs de points2 sont égales aux valeurs originales de la colonne des points multipliées par deux.
Notez que la fonction transmute() ne modifie pas réellement le bloc de données d’origine.
Pour sauvegarder les résultats de la fonction transmute() dans un nouveau bloc de données, vous devez les stocker dans une variable :
library(dplyr)
#store results of transmute in variable
df_points2 <- df %>% transmute(points2 = points * 2)
#view results
df_points2
points2
1 198
2 180
3 172
4 176
5 190
Les résultats de transmute() sont désormais stockés dans une nouvelle trame de données.
Exemple 2 : utilisez transmute() pour créer plusieurs nouvelles variables
Le code suivant montre comment utiliser transmute() pour créer plusieurs nouvelles variables à partir de variables existantes :
library(dplyr)
#create multiple new variables
df %>%
transmute(
points2 = points * 2,
rebounds_squared = rebounds^2,
assists_half = assists / 2,
team_name= paste0('team_', team)
)
points2 rebounds_squared assists_half team_name
1 198 900 16.5 team_A
2 180 784 14.0 team_B
3 172 576 15.5 team_C
4 176 576 19.5 team_D
5 190 784 17.0 team_E
Notez que quatre nouvelles variables ont été créées.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment utiliser la fonction relocate() dans dplyr
Comment utiliser la fonction slice() dans dplyr
Comment filtrer par numéro de ligne dans dplyr