Як копіювати рядки у кадрі даних у r


Ви можете використовувати наступні методи для реплікації рядків у кадрі даних у R за допомогою функцій у пакеті dplyr :

Спосіб 1: повторіть кожен рядок однакову кількість разів

 library (dplyr)

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

Спосіб 2: Повторіть кожен рядок різну кількість разів

 library (dplyr)

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

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1: повторіть кожен рядок однакову кількість разів

Припустимо, ми маємо наступний кадр даних із двома рядками в 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

Ми можемо використовувати такий синтаксис, щоб тричі повторити кожен рядок кадру даних:

 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

Зауважте, що кожен із рядків у вихідному кадрі даних повторювався тричі.

Приклад 2: повторіть кожен рядок різну кількість разів

Припустимо, ми маємо наступний кадр даних із двома рядками в 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

Ми можемо використати наступний синтаксис, щоб повторити перший рядок три рази та другий рядок п’ять разів:

 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

Зауважте, що перший рядок вихідного кадру даних повторювався тричі, а другий рядок – п’ять разів.

Пов’язане: як використовувати функцію slice() у dplyr

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в dplyr:

Як вибрати стовпці за індексом за допомогою dplyr
Як вибрати перший рядок групою за допомогою dplyr
Як фільтрувати за кількома умовами за допомогою dplyr
Як фільтрувати рядки, що містять певний рядок, за допомогою dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *