Как реплицировать строки во фрейме данных в 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

Обратите внимание, что первая строка исходного кадра данных повторялась три раза, а вторая строка — пять раз.

Связано: Как использовать функцию среза () в dplyr

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в dplyr:

Как выбрать столбцы по индексу с помощью dplyr
Как выбрать первую строку по группе с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr
Как фильтровать строки, содержащие определенную строку, с помощью dplyr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *