Comment répliquer des lignes dans un bloc de données dans R
Vous pouvez utiliser les méthodes suivantes pour répliquer des lignes dans un bloc de données dans R à l’aide des fonctions du package dplyr :
Méthode 1 : répliquer chaque ligne le même nombre de fois
library(dplyr) #replicate each row 3 times df %>% slice(rep(1:n(), each = 3))
Méthode 2 : répliquer chaque ligne un nombre de fois différent
library(dplyr) #replicate the first row 3 times and the second row 5 times df %>% slice(rep(1:n(), times = c(3, 5)))
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : Répliquer chaque ligne le même nombre de fois
Supposons que nous ayons le bloc de données suivant avec deux lignes dans R :
#create data frame
df <- data.frame(team=c('A', 'B'),
points=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebounds assists
1 A 10 4 2
2 B 15 8 5
Nous pouvons utiliser la syntaxe suivante pour répéter chaque ligne du bloc de données trois fois :
library(dplyr)
#create new data frame that repeats each row in original data frame 3 times
new_df <- df %>% slice(rep(1:n(), each = 3))
#view new data frame
new_df
team points rebounds assists
1 A 10 4 2
2 A 10 4 2
3 A 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
Notez que chacune des lignes du bloc de données d’origine a été répétée trois fois.
Exemple 2 : répliquer chaque ligne un nombre de fois différent
Supposons que nous ayons le bloc de données suivant avec deux lignes dans R :
#create data frame
df <- data.frame(team=c('A', 'B'),
points=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebounds assists
1 A 10 4 2
2 B 15 8 5
Nous pouvons utiliser la syntaxe suivante pour répéter la première ligne trois fois et la deuxième ligne cinq fois :
library(dplyr)
#create new data frame that repeats first row 3 times and second row 5 times
new_df <- df %>% slice(rep(1:n(), times = c(3, 5)))
#view new data frame
new_df
team points rebounds assists
1 A 10 4 2
2 A 10 4 2
3 A 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
7 B 15 8 5
8 B 15 8 5
Notez que la première ligne du bloc de données d’origine a été répétée trois fois et la deuxième ligne cinq fois.
Connexe : Comment utiliser la fonction slice() dans dplyr
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans dplyr :
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment sélectionner la première ligne par groupe à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr
Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr