Come replicare le righe in un frame di dati in r
È possibile utilizzare i metodi seguenti per replicare le righe in un frame di dati in R utilizzando le funzioni nel pacchetto dplyr :
Metodo 1: replicare ciascuna riga lo stesso numero di volte
library (dplyr) #replicate each row 3 times df %>% slice(rep(1:n(), each = 3))
Metodo 2: replicare ciascuna riga un numero diverso di volte
library (dplyr) #replicate the first row 3 times and the second row 5 times df %>% slice(rep(1:n(), times = c(3, 5)))
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: replicare ciascuna riga lo stesso numero di volte
Supponiamo di avere il seguente frame di dati con due righe in R:
#create data frame
df <- data. frame (team=c('A', 'B'),
dots=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebound assists
1 to 10 4 2
2 B 15 8 5
Possiamo usare la seguente sintassi per ripetere ogni riga del frame di dati tre volte:
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 rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
Si noti che ciascuna delle righe nel frame di dati originale è stata ripetuta tre volte.
Esempio 2: replicare ciascuna riga un numero diverso di volte
Supponiamo di avere il seguente frame di dati con due righe in R:
#create data frame
df <- data. frame (team=c('A', 'B'),
dots=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebound assists
1 to 10 4 2
2 B 15 8 5
Possiamo usare la seguente sintassi per ripetere la prima riga tre volte e la seconda cinque volte:
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 rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 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
Si noti che la prima riga del frame di dati originale è stata ripetuta tre volte e la seconda riga cinque volte.
Correlati: come utilizzare la funzione slice() in dplyr
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in dplyr:
Come selezionare le colonne per indice utilizzando dplyr
Come selezionare la prima riga per gruppo utilizzando dplyr
Come filtrare in base a più condizioni utilizzando dplyr
Come filtrare le righe contenenti una determinata stringa utilizzando dplyr