Comment utiliser la fonction Spread dans R (avec exemples)
La fonction spread() du package Tidyr peut être utilisée pour « répartir » une paire clé-valeur sur plusieurs colonnes.
Cette fonction utilise la syntaxe de base suivante :
spread (données, valeur clé)
où:
- data : Nom de la trame de données
- key : Colonne dont les valeurs deviendront des noms de variables
- value : Colonne où les valeurs seront remplies sous les nouvelles variables créées à partir de la clé
Les exemples suivants montrent comment utiliser cette fonction dans la pratique.
Exemple 1 : répartir les valeurs sur deux colonnes
Supposons que nous ayons le bloc de données suivant dans R :
#create data frame df <- data.frame(player=rep(c('A', 'B'), each=4), year=rep(c(1, 1, 2, 2), times=2), stat=rep(c('points', 'assists'), times=4), amount=c(14, 6, 18, 7, 22, 9, 38, 4)) #view data frame df player year stat amount 1 A 1 points 14 2 A 1 assists 6 3 A 2 points 18 4 A 2 assists 7 5 B 1 points 22 6 B 1 assists 9 7 B 2 points 38 8 B 2 assists 4
Nous pouvons utiliser la fonction spread() pour transformer les valeurs de la colonne stat dans leurs propres colonnes :
library(tidyr) #spread stat column across multiple columns spread(df, key=stat, value=amount) player year assists points 1 A 1 6 14 2 A 2 7 18 3 B 1 9 22 4 B 2 4 38
Exemple 2 : répartir les valeurs sur plus de deux colonnes
Supposons que nous ayons le bloc de données suivant dans R :
#create data frame df2 <- data.frame(player=rep(c('A'), times=8), year=rep(c(1, 2), each=4), stat=rep(c('points', 'assists', 'steals', 'blocks'), times=2), amount=c(14, 6, 2, 1, 29, 9, 3, 4)) #view data frame df2 player year stat amount 1 A 1 points 14 2 A 1 assists 6 3 A 1 steals 2 4 A 1 blocks 1 5 A 2 points 29 6 A 2 assists 9 7 A 2 steals 3 8 A 2 blocks 4
Nous pouvons utiliser la fonction spread() pour transformer les quatre valeurs uniques de la colonne stat en quatre nouvelles colonnes :
library(tidyr) #spread stat column across multiple columns spread(df2, key=stat, value=amount) player year assists blocks points steals 1 A 1 6 1 14 2 2 A 2 9 4 29 3
Ressources additionnelles
L’objectif du package Tidyr est de créer des données « ordonnées », qui présentent les caractéristiques suivantes :
- Chaque colonne est une variable.
- Chaque ligne est une observation.
- Chaque cellule est une valeur unique.
Le package Tidyr utilise quatre fonctions principales pour créer des données ordonnées :
1. La fonction spread() .
2. La fonction rassembler() .
3. La fonction séparée() .
4. La fonction unit() .
Si vous maîtrisez ces quatre fonctions, vous serez en mesure de créer des données « ordonnées » à partir de n’importe quelle trame de données.