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
iargument - 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 |