data.tableErste Schritte mit data.table

Bemerkungen

Data.table ist ein Paket für die statistische Rechenumgebung von R. Es erweitert die Funktionalität von Daten-Frames von der Basis-R, und verbessert insbesondere deren Leistung und Syntax. Eine Reihe verwandter Aufgaben, einschließlich Rolling- und Non-Equi-Joins, werden in einer konsistenten, prägnanten Syntax wie DT[where, select|update|do, by]

Das Paket enthält außerdem eine Reihe von Zusatzfunktionen:

  • I / O: fread / fwrite
  • Umformen: melt / dcast / rbindlist / split
  • rleid : rleid

Versionen

Ausführung Anmerkungen Erscheinungsdatum bei CRAN
1.9.4 2014-10-02
1.9.6 2015-09-19
1.9.8 2016-11-24
1.10.0 "Im Nachhinein hätte die letzte Version v1.9.8 v1.10.0 heißen sollen." 2016-12-03
1.10.1 In Entwicklung 2016-12-03

Erste Schritte und Hilfe suchen

Das offizielle Wiki des Pakets enthält einige wichtige Materialien:

Für Hilfe zu den einzelnen Funktionen ist die Syntax - help("fread") oder ?fread . Wenn das Paket nicht geladen wurde, verwenden Sie den vollständigen Namen wie ?data.table::fread .

Installation und Einrichtung

Installieren Sie die stabile Version von CRAN:

install.packages("data.table")       
 

Oder die Entwicklungsversion von github:

install.packages("data.table", type = "source", 
  repos = "http://Rdatatable.github.io/data.table")
 

Um von der Entwicklung zu CRAN zurückzukehren, muss zuerst die aktuelle Version entfernt werden:

remove.packages("data.table")
install.packages("data.table")
 

Besuchen Sie die Website für vollständige Installationsanweisungen und die neuesten Versionsnummern.

Verwenden des Pakets

Normalerweise möchten Sie das Paket und alle seine Funktionen mit einer Zeile wie laden

library(data.table)
 

Wenn Sie nur eine oder zwei Funktionen benötigen, können data.table::fread stattdessen auf data.table::fread .

Syntax und Funktionen

Grundlegende Syntax

DT[where, select|update|do, by] Syntax wird verwendet, um mit Spalten einer data.table zu arbeiten.

  • "Wo" ist das i Argument
  • Der Teil "select | update | do" ist das Argument j

Diese beiden Argumente werden normalerweise nach Position statt nach Name übergeben.

Eine Folge von Schritten kann wie DT[...][...] verkettet werden.

Tastenkombinationen, Sonderfunktionen und Sonderzeichen in DT[...]

Funktion oder Symbol Anmerkungen
.() ersetzt in mehreren Argumenten list()
J() in i ersetzt list()
:= in j eine Funktion zum Hinzufügen oder Ändern von Spalten
.N in i die Gesamtzahl der Zeilen
in j die Anzahl der Zeilen in einer Gruppe
.I in j der Vektor der Zeilennummern in der Tabelle (gefiltert nach i )
.SD in j die aktuelle Teilmenge der Daten
ausgewählt durch das Argument .SDcols
.GRP in j der aktuelle Index der Untermenge der Daten
.BY in j die Liste der by-Werte für die aktuelle Datenuntermenge
V1, V2, ... Standardnamen für nicht benannte Spalten, die in j

Schließt sich in DT[...]

Notation Anmerkungen
DT1[DT2, on, j] Verbinden Sie zwei Tische
i.* Sonderpräfix der DT2-Spalten nach dem Join
by=.EACHI Sonderoption nur mit Join verfügbar
DT1[!DT2, on, j] Anti-Join zwei Tabellen
DT1[DT2, on, roll, j] Verbinden Sie zwei Tabellen und rollen Sie in der letzten Spalte von on=

Umformen, Stapeln und Spalten

Notation Anmerkungen
melt(DT, id.vars, measure.vars) in langes Format umwandeln
Verwenden measure.vars = patterns(...) für mehrere Spalten measure.vars = patterns(...)
dcast(DT, formula) Umwandlung in ein Breitformat
rbind(DT1, DT2, ...) Stack aufgezählte data.tables
rbindlist(DT_list, idcol) stapeln Sie eine Liste von data.tables
split(DT, by) splitten Sie eine data.table in eine Liste

Einige andere Funktionen, die auf data.tables spezialisiert sind

Funktion (en) Anmerkungen
foverlaps Überlappungsverbindungen
merge eine andere Möglichkeit, zwei Tische zu verbinden
set eine andere Möglichkeit, Spalten hinzuzufügen oder zu ändern
fintersect , fsetdiff ,
funion , fsetequal ,
unique , duplicated , anyDuplicated
Satztheoretische Operationen mit Zeilen als Elementen
CJ das kartesische Produkt von Vektoren
uniqueN die Anzahl der unterschiedlichen Reihen
rowidv(DT, cols) Zeilen-ID (1 bis .N) innerhalb jeder Gruppe, bestimmt durch Spalten
rleidv(DT, cols) Gruppen-ID (1 bis .GRP) innerhalb jeder Gruppe, bestimmt durch Anzahl von Spalten
shift(DT, n) Wende einen Schichtoperator auf jede Spalte an
setorder , setcolorder ,
setnames , setkey , setindex ,
setattr
Attribute ändern und nach Referenz sortieren

Andere Funktionen des Pakets

Eigenschaften Anmerkungen
IDate und ITime ganzzahlige Datums- und Uhrzeitangaben