Jak replikować wiersze w ramce danych w r


Do replikowania wierszy w ramce danych w R przy użyciu funkcji z pakietu dplyr można użyć następujących metod:

Metoda 1: Powtórz każdą linię tę samą liczbę razy

 library (dplyr)

#replicate each row 3 times
df %>% slice(rep(1:n(), each = 3))

Metoda 2: Powtórz każdą linię inną liczbę razy

 library (dplyr)

#replicate the first row 3 times and the second row 5 times
df %>% slice(rep(1:n(), times = c(3, 5)))

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Powtórz każdą linię tę samą liczbę razy

Załóżmy, że mamy następującą ramkę danych z dwoma wierszami w 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

Możemy użyć następującej składni, aby trzykrotnie powtórzyć każdy wiersz ramki danych:

 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

Należy zauważyć, że każda linia oryginalnej ramki danych została powtórzona trzykrotnie.

Przykład 2: Powtórz każdą linię inną liczbę razy

Załóżmy, że mamy następującą ramkę danych z dwoma wierszami w 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

Możemy użyć następującej składni, aby powtórzyć pierwszą linię trzy razy, a drugą pięć razy:

 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

Należy zauważyć, że pierwsza linia oryginalnej ramki danych została powtórzona trzy razy, a druga linia pięć razy.

Powiązane: Jak używać funkcji plasterek() w dplyr

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w dplyr:

Jak wybrać kolumny według indeksu za pomocą dplyr
Jak wybrać pierwszy wiersz według grupy za pomocą dplyr
Jak filtrować według wielu warunków za pomocą dplyr
Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *