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

Einen Kommentar hinzufügen

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