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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *