Comment utiliser la fonction split() dans R pour diviser les données



La fonction split() dans R peut être utilisée pour diviser les données en groupes en fonction des niveaux de facteurs.

Cette fonction utilise la syntaxe de base suivante :

diviser(x, f, …)

où:

  • x : Nom du vecteur ou du bloc de données à diviser en groupes
  • f : Un facteur qui définit les regroupements

Les exemples suivants montrent comment utiliser cette fonction pour diviser des vecteurs et des trames de données en groupes.

Exemple 1 : utilisez split() pour diviser le vecteur en groupes

Le code suivant montre comment diviser un vecteur de valeurs de données en groupes en fonction d’un vecteur de niveaux de facteurs :

#create vector of data values
data <- c(1, 2, 3, 4, 5, 6)

#create vector of groupings
groups <- c('A', 'B', 'B', 'B', 'C', 'C')

#split vector of data values into groups
split(x = data, f = groups)

$A
[1] 1

$B
[1] 2 3 4

$C
[1] 5 6

Le résultat est trois groupes.

Notez que vous pouvez également utiliser l’indexation pour récupérer des groupes spécifiques :

#split vector of data values into groups and only display second group
split(x = data, f = groups)[2]

$B
[1] 2 3 4

Exemple 2 : utilisez split() pour diviser le bloc de données en groupes

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

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'G', 'F', 'F'),
                 points=c(33, 28, 31, 39, 34, 44),
                 assists=c(30, 28, 24, 24, 28, 19))

#view data frame
df

  team position points assists
1    A        G     33      30
2    A        G     28      28
3    A        F     31      24
4    B        G     39      24
5    B        F     34      28
6    B        F     44      19

Nous pouvons utiliser le code suivant pour diviser le bloc de données en groupes en fonction de la variable « équipe » :

#split data frame into groups based on 'team'
split(df, f = df$team)

$A
  team position points assists
1    A        G     33      30
2    A        G     28      28
3    A        F     31      24

$B
  team position points assists
4    B        G     39      24
5    B        F     34      28
6    B        F     44      19

Le résultat est deux groupes. Le premier contient uniquement les lignes où « équipe » est égal à A et le second ne contient que les lignes où « équipe » est égal à B.

Notez que nous pouvons également diviser les données en groupes en utilisant plusieurs variables factorielles. Par exemple, le code suivant montre comment diviser les données en groupes en fonction des variables « équipe » et « position » :

#split data frame into groups based on 'team' and 'position' variables
split(df, f = list(df$team, df$position))

$A.F
  team position points assists
3    A        F     31      24

$B.F
  team position points assists
5    B        F     34      28
6    B        F     44      19

$A.G
  team position points assists
1    A        G     33      30
2    A        G     28      28

$B.G
  team position points assists
4    B        G     39      24

Le résultat est quatre groupes.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction summary() dans R
Comment utiliser la fonction replicate() dans R
Comment utiliser la fonction match() dans R

Ajouter un commentaire

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