Rijen repliceren in een dataframe in r


U kunt de volgende methoden gebruiken om rijen in een dataframe in R te repliceren met behulp van functies in het dplyr- pakket:

Methode 1: Repliceer elke regel evenveel keer

 library (dplyr)

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

Methode 2: Repliceer elke regel een ander aantal keren

 library (dplyr)

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

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.

Voorbeeld 1: Repliceer elke regel evenveel keer

Stel dat we het volgende dataframe hebben met twee rijen in 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

We kunnen de volgende syntaxis gebruiken om elke regel van het dataframe drie keer te herhalen:

 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

Merk op dat elk van de lijnen in het originele dataframe drie keer is herhaald.

Voorbeeld 2: Repliceer elke regel een ander aantal keren

Stel dat we het volgende dataframe hebben met twee rijen in 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

We kunnen de volgende syntaxis gebruiken om de eerste regel drie keer en de tweede regel vijf keer te herhalen:

 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

Merk op dat de eerste regel van het oorspronkelijke dataframe drie keer werd herhaald en de tweede regel vijf keer.

Gerelateerd: Hoe de slice()-functie in dplyr te gebruiken

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in dplyr uitvoert:

Kolommen selecteren op index met behulp van dplyr
Hoe u de eerste rij per groep selecteert met dplyr
Hoe u op meerdere voorwaarden kunt filteren met behulp van dplyr
Hoe u rijen kunt filteren die een bepaalde tekenreeks bevatten met behulp van dplyr

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert