Como replicar linhas em um quadro de dados em r


Você pode usar os seguintes métodos para replicar linhas em um quadro de dados em R usando funções do pacote dplyr :

Método 1: replicar cada linha o mesmo número de vezes

 library (dplyr)

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

Método 2: replicar cada linha um número diferente de vezes

 library (dplyr)

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

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: replique cada linha o mesmo número de vezes

Suponha que temos o seguinte quadro de dados com duas linhas em 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

Podemos usar a seguinte sintaxe para repetir cada linha do quadro de dados três vezes:

 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

Observe que cada uma das linhas do quadro de dados original foi repetida três vezes.

Exemplo 2: Replique cada linha um número diferente de vezes

Suponha que temos o seguinte quadro de dados com duas linhas em 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

Podemos usar a seguinte sintaxe para repetir a primeira linha três vezes e a segunda linha cinco vezes:

 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

Observe que a primeira linha do quadro de dados original foi repetida três vezes e a segunda linha cinco vezes.

Relacionado: Como usar a função slice() no dplyr

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no dplyr:

Como selecionar colunas por índice usando dplyr
Como selecionar a primeira linha por grupo usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como filtrar linhas contendo uma determinada string usando dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *