data.table Zelfstudie
Aan de slag met data.table
Zoeken…
Opmerkingen
Data.table is een pakket voor de R statistische computeromgeving. Het breidt de functionaliteit van dataframes uit base R uit, met name verbetering van hun prestaties en syntaxis. Een aantal gerelateerde taken, waaronder rollende en non-equi joins, worden afgehandeld in een consistente beknopte syntaxis zoals DT[where, select|update|do, by]
.
Een aantal aanvullende functies zijn ook opgenomen in het pakket:
- I / O:
fread
/fwrite
- Hervormen:
melt
/dcast
/rbindlist
/split
-
rleid
:rleid
versies
Versie | Notes | Releasedatum op CRAN |
---|---|---|
1.9.4 | 2014/10/02 | |
1.9.6 | 2015/09/19 | |
1.9.8 | 2016/11/24 | |
1.10.0 | "Achteraf gezien had de laatste release v1.9.8 de naam v1.10.0 moeten krijgen" | 2016/12/03 |
1.10.1 | In ontwikkeling | 2016/12/03 |
Installatie en configuratie
Installeer de stabiele release van CRAN:
install.packages("data.table")
Of de ontwikkelingsversie van github:
install.packages("data.table", type = "source",
repos = "http://Rdatatable.github.io/data.table")
Om terug te keren van devel naar CRAN, moet eerst de huidige versie worden verwijderd:
remove.packages("data.table")
install.packages("data.table")
Bezoek de website voor volledige installatie-instructies en de nieuwste versienummers.
Het pakket gebruiken
Gewoonlijk wilt u het pakket en alle functies met een regel zoals laden
library(data.table)
Als u slechts één of twee functies nodig hebt, kunt u ernaar verwijzen zoals data.table::fread
.
Aan de slag en hulp vinden
De officiële wiki van het pakket bevat een aantal essentiële materialen:
Als nieuwe gebruiker wil je de vignetten, de veelgestelde vragen en het spiekbriefje bekijken .
Lees de ondersteuningspagina voordat u een vraag stelt - hier op StackOverflow of ergens anders -.
Voor hulp bij afzonderlijke functies is de syntaxis help("fread")
of ?fread
. Als het pakket niet is geladen, gebruikt u de volledige naam zoals ?data.table::fread
.
Syntaxis en functies
Basissyntaxis
DT[where, select|update|do, by]
syntaxis wordt gebruikt om te werken met kolommen van een data.table.
- Het "waar" gedeelte is het
i
argument - Het gedeelte "select | update | do" is het argument
j
Deze twee argumenten worden meestal op positie doorgegeven in plaats van op naam.
Een reeks stappen kan worden gekoppeld zoals DT[...][...]
.
Snelkoppelingen, speciale functies en speciale symbolen in DT[...]
Functie of symbool | Notes |
---|---|
.() | vervangt in meerdere argumenten list() |
J() | in i , vervangt list() |
:= | in j , een functie die wordt gebruikt om kolommen toe te voegen of te wijzigen |
.N | in i het totale aantal rijen in j , het aantal rijen in een groep |
.I | in j , de vector van rijnummers in de tabel (gefilterd door i ) |
.SD | in j , de huidige subset van de gegevens geselecteerd door het .SDcols argument |
.GRP | in j , de huidige index van de subset van de gegevens |
.BY | in j , de lijst met waarden voor de huidige subset van gegevens |
V1, V2, ... | standaardnamen voor naamloze kolommen gemaakt in j |
Sluit zich aan bij DT[...]
schrijfwijze | Notes |
---|---|
DT1[DT2, on, j] | voeg twee tafels bij elkaar |
i.* | speciaal voorvoegsel in de kolommen van DT2 na de join |
by=.EACHI | speciale optie alleen beschikbaar met een join |
DT1[!DT2, on, j] | anti-join twee tafels |
DT1[DT2, on, roll, j] | voeg twee tabellen toe, rollend op de laatste kolom in on= |
Hervormen, stapelen en splitsen
schrijfwijze | Notes |
---|---|
melt(DT, id.vars, measure.vars) | transformeren naar lang formaat gebruik meerdere kolommen, measure.vars = patterns(...) |
dcast(DT, formula) | transformeren naar breed formaat |
rbind(DT1, DT2, ...) | stapel getelde data.tables |
rbindlist(DT_list, idcol) | stapel een lijst met data.tables |
split(DT, by) | splits een data.table in een lijst |
Enkele andere functies die gespecialiseerd zijn voor data.tables
Functie (s) | Notes |
---|---|
foverlaps | overlappende verbindingen |
merge | een andere manier om twee tafels samen te voegen |
set | een andere manier om kolommen toe te voegen of te wijzigen |
fintersect , fsetdiff , funion , fsetequal , unique , duplicated , elk anyDuplicated | set-theorie operaties met rijen als elementen |
CJ | het Cartesiaanse product van vectoren |
uniqueN | het aantal afzonderlijke rijen |
rowidv(DT, cols) | rij-ID (1 tot .N) binnen elke groep bepaald door cols |
rleidv(DT, cols) | groeps-ID (1 tot .GRP) binnen elke groep bepaald door runs van cols |
shift(DT, n) | pas een shift-operator toe op elke kolom |
setorder , setcolorder , setnames , setkey , setindex , setattr | attributen wijzigen en sorteren op referentie |
Andere kenmerken van het pakket
Kenmerken | Notes |
---|---|
IDate en ITime | gehele datums en tijden |