data.table Tutorial
Erste Schritte mit data.table
Suche…
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 |
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
.
Erste Schritte und Hilfe suchen
Das offizielle Wiki des Pakets enthält einige wichtige Materialien:
Als neuer Benutzer sollten Sie sich die Vignetten, die häufig gestellten Fragen und das Spickzettel ansehen .
Bevor Sie eine Frage stellen - hier bei StackOverflow oder anderswo - lesen Sie bitte die Support-Seite .
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
.
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 |