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.

Ajouter un commentaire

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