Comment utiliser une fonction séparée dans R (avec des exemples)



La fonction Separate() du package Tidyr peut être utilisée pour séparer une colonne de bloc de données en plusieurs colonnes.

Cette fonction utilise la syntaxe de base suivante :

séparé (données, col, into, sep)

où:

  • data : Nom de la trame de données
  • col : Nom de la colonne à séparer
  • into : Vecteur de noms pour la colonne à séparer en
  • sep : La valeur pour séparer la colonne à

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Exemple 1 : séparer la colonne en deux colonnes

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(player=c('A', 'A', 'B', 'B', 'C', 'C'),
                 year=c(1, 2, 1, 2, 1, 2),
                 stats=c('22-2', '29-3', '18-6', '11-8', '12-5', '19-2'))

#view data frame
df

  player year stats
1      A    1  22-2
2      A    2  29-3
3      B    1  18-6
4      B    2  11-8
5      C    1  12-5
6      C    2  19-2

Nous pouvons utiliser la fonction Separate() pour séparer la colonne stats en deux nouvelles colonnes appelées « points » et « assists » comme suit :

library(tidyr)

#separate stats column into points and assists columns
separate(df, col=stats, into=c('points', 'assists'), sep='-')

  player year points assists
1      A    1     22       2
2      A    2     29       3
3      B    1     18       6
4      B    2     11       8
5      C    1     12       5
6      C    2     19       2

Exemple 2 : séparer la colonne en plus de deux colonnes

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df2 <- data.frame(player=c('A', 'A', 'B', 'B', 'C', 'C'),
                 year=c(1, 2, 1, 2, 1, 2),
                 stats=c('22/2/3', '29/3/4', '18/6/7', '11/1/2', '12/1/1', '19/2/4'))

#view data frame
df2

  player year   stats
1      A    1  22/2/3
2      A    2  29/3/4
3      B    1  18/6/7
4      B    2  11/1/2
5      C    1  12/1/1
6      C    2  19/2/4

Nous pouvons utiliser la fonction Separate() pour séparer la colonne stats en trois colonnes distinctes :

library(tidyr)

#separate stats column into three new columns
separate(df, col=stats, into=c('points', 'assists', 'steals'), sep='/')

  player year points assists steals
1      A    1     22       2      3
2      A    2     29       3      4
3      B    1     18       6      7
4      B    2     11       1      2
5      C    1     12       1      1
6      C    2     19       2      4

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 *