Hoe rbindlist in r te gebruiken om een gegevenstabel van meerdere te maken
De functie rbindlist() in R kan worden gebruikt om een data.table te maken uit een lijst met veel data.table- of data.frame-objecten.
Deze functie gebruikt de volgende basissyntaxis:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
Goud:
- l : Lijst met data.table-, data.frame- of list-objecten.
- use.names : TRUE bindt op kolomnamen. FALSE bindt op basis van positie.
- fill : TRUE vult ontbrekende waarden met NA.
- idcol : Creëert een kolom die aangeeft uit welk lijstitem deze rijen komen.
Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.
Voorbeeld: Gebruik rbindlist om een gegevenstabel te maken
Stel dat we de volgende lijst met data.table- en data.frame-objecten in R hebben:
library (data.table) #create data frames and data tables data1 <- data. table (team=c('A', 'B', 'C'), dots=c(22, 27, 38)) data2 <- data. table (team=c('D', 'E', 'F'), dots=c(22, 14, 20)) data3 <- data. frame (team=c('G', 'H', 'I'), dots=c(11, 15, 18)) #view data frames and data tables print (data1) print (data2) print (data3) team points 1: At 22 2:B27 3: C 38 team points 1:D22 2:E14 3:F20 team points 1 G 11 2:15 a.m. 3 I 18
We kunnen de volgende functie rbindlist() gebruiken om de lijst met data.table- en data.frame-objecten te binden in één data.table:
#define list of objects to bind together data_list <- list(data1, data2, data3) #bind together list of objects big_data <- rbindlist(data_list) #view result big_data team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
Het resultaat is een data.table-object met negen rijen bestaande uit rijen uit de lijst met objecten die we hebben verstrekt.
We kunnen ook de functie class() gebruiken om te verifiëren dat het resultaat inderdaad een data.table-object is:
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
We zien dat het resultaat inderdaad een data.table-object is.
Het voordeel van het gebruik van rbindlist
Het alternatief voor het gebruik van rbindlist zou zijn om do.call te gebruiken met de rbind-functie in basis R:
#use rbind to bind together list of objects do. call (" rbind ", data_list) team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
Deze code levert hetzelfde resultaat op, maar het blijkt dat rbindlist aanzienlijk sneller is, vooral voor extreem grote data.table- of data.frame-objecten.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:
Hoe een tabel naar een dataframe te converteren in R
Rijen toevoegen aan een dataframe in R
Hoe een dataframe in R te splitsen