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