data.tableAan de slag met data.table


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

Aan de slag en hulp vinden

De officiële wiki van het pakket bevat een aantal essentiële materialen:

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 .

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 .

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