R : Comment réduire le texte par groupe dans un bloc de données
Vous pouvez utiliser les méthodes suivantes pour réduire le texte par groupe dans un bloc de données dans R :
Méthode 1 : Réduire le texte par groupe à l’aide de Base R
aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')
Méthode 2 : Réduire le texte par groupe à l’aide de dplyr
library(dplyr)
df %>%
group_by(group_var) %>%
summarise(text=paste(text_var, collapse=''))
Méthode 3 : Réduire le texte par groupe à l’aide de data.table
library(data.table) dt <- as.data.table(df) dt[, list(text_var=paste(text_var, collapse='')), by=group_var]
Ce tutoriel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Center'))
#view data frame
df
team position
1 A Guard
2 A Guard
3 A Forward
4 B Guard
5 B Forward
6 B Center
Exemple 1 : Réduire le texte par groupe à l’aide de Base R
Le code suivant montre comment réduire le texte de la colonne position , regroupé par colonne équipe à l’aide de la fonction Aggregate() de la base R :
#collapse position values by team
aggregate(position ~ team, data=df, FUN=paste, collapse='')
team position
1 A GuardGuardForward
2 B GuardForwardCenter
Notez que chacune des valeurs de texte de la colonne de position a été réduite en une seule valeur, regroupée par les valeurs de la colonne d’équipe .
Exemple 2 : Réduire le texte par groupe à l’aide de dplyr
Le code suivant montre comment réduire le texte de la colonne position , regroupé par colonne team à l’aide de la fonction summarise() du package dplyr :
library(dplyr) #collapse position values by team df %>% group_by(group_var) %>% summarise(text=paste(text_var, collapse='')) # A tibble: 2 x 2 team text 1 A GuardGuardForward 2 B GuardForwardCenter
Notez que chacune des valeurs de texte de la colonne de position a été réduite en une seule valeur, regroupée par les valeurs de la colonne d’équipe .
Exemple 3 : Réduire le texte par groupe à l’aide de data.table
Le code suivant montre comment réduire le texte de la colonne position , regroupé par colonne d’ équipe à l’aide des fonctions du package data.table :
library(data.table) #convert data frame to data table dt <- as.data.table(df) #collapse position values by team dt[, list(text_var=paste(text_var, collapse='')), by=group_var] team position 1: A GuardGuardForward 2: B GuardForwardCenter
Chacune des valeurs de texte de la colonne de position a été réduite en une seule valeur, regroupée par les valeurs de la colonne d’équipe .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment sélectionner des colonnes contenant une chaîne spécifique dans R
Comment supprimer des caractères d’une chaîne dans R
Comment trouver l’emplacement du caractère dans une chaîne dans R