So verwenden sie rbindlist in r, um eine datentabelle aus mehreren zu erstellen


Mit der Funktion rbindlist() in R kann eine data.table aus einer Liste vieler data.table- oder data.frame-Objekte erstellt werden.

Diese Funktion verwendet die folgende grundlegende Syntax:

 rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )

Gold:

  • l : Liste mit data.table-, data.frame- oder Listenobjekten.
  • use.names : TRUE bindet nach Spaltennamen. FALSE bindet nach Position.
  • fill : TRUE füllt fehlende Werte mit NA.
  • idcol : Erstellt eine Spalte, die angibt, aus welchem Listenelement diese Zeilen stammen.

Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel: Verwenden Sie rbindlist, um eine Datentabelle zu erstellen

Angenommen, wir haben die folgende Liste von data.table- und data.frame-Objekten in R:

 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

Wir können die folgende Funktion rbindlist() verwenden, um die Liste der data.table- und data.frame-Objekte in eine einzige data.table zu binden:

 #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

Das Ergebnis ist ein data.table-Objekt mit neun Zeilen, bestehend aus Zeilen aus der Liste der von uns bereitgestellten Objekte.

Wir können auch die Funktion class() verwenden, um zu überprüfen, ob das Ergebnis tatsächlich ein data.table-Objekt ist:

 #view class of resulting object
class(big_data)

[1] "data.table" "data.frame"

Wir sehen, dass das Ergebnis tatsächlich ein data.table-Objekt ist.

Der Vorteil der Verwendung von rbindlist

Die Alternative zur Verwendung von rbindlist wäre die Verwendung von do.call mit der rbind-Funktion 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

Dieser Code liefert das gleiche Ergebnis, es stellt sich jedoch heraus, dass rbindlist deutlich schneller ist, insbesondere für extrem große data.table- oder data.frame-Objekte.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:

So konvertieren Sie eine Tabelle in einen Datenrahmen in R
So fügen Sie Zeilen zu einem Datenrahmen in R hinzu
So teilen Sie einen Datenrahmen in R

Einen Kommentar hinzufügen

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