data.table Tutorial
Iniziare con data.table
Ricerca…
Osservazioni
Data.table è un pacchetto per l'ambiente di calcolo statistico R. Estende le funzionalità dei frame di dati dalla base R, migliorando in particolare le loro prestazioni e sintassi. Un certo numero di attività correlate, compresi i join rotanti e non equi, vengono gestiti in una sintassi concisa coerente come DT[where, select|update|do, by]
.
Un numero di funzioni complementari sono anche incluse nel pacchetto:
- I / O:
fread
/fwrite
- Rimodellamento:
melt
/dcast
/rbindlist
/split
- Corse di valori:
rleid
Versioni
Versione | Gli appunti | Data di rilascio su CRAN |
---|---|---|
1.9.4 | 2014/10/02 | |
1.9.6 | 2015/09/19 | |
1.9.8 | 2016/11/24 | |
1.10.0 | "Con il senno di poi, l'ultima release v1.9.8 avrebbe dovuto essere denominata v1.10.0" | 2016/12/03 |
1.10.1 | In sviluppo | 2016/12/03 |
Installazione e configurazione
Installa la versione stabile da CRAN:
install.packages("data.table")
Oppure la versione di sviluppo di github:
install.packages("data.table", type = "source",
repos = "http://Rdatatable.github.io/data.table")
Per ripristinare da devel a CRAN, è necessario rimuovere prima la versione corrente:
remove.packages("data.table")
install.packages("data.table")
Visita il sito Web per le istruzioni complete di installazione e gli ultimi numeri di versione.
Usando il pacchetto
Solitamente vorrai caricare il pacchetto e tutte le sue funzioni con una linea simile
library(data.table)
Se hai solo bisogno di una o due funzioni, puoi fare riferimento ad esse come data.table::fread
.
Iniziare e trovare aiuto
La wiki ufficiale del pacchetto ha alcuni materiali essenziali:
Come nuovo utente, vorrai controllare le vignette, le FAQ e il cheat sheet .
Prima di fare una domanda - qui su StackOverflow o altrove - leggi la pagina di supporto .
Per informazioni sulle singole funzioni, la sintassi è help("fread")
o ?fread
. Se il pacchetto non è stato caricato, utilizzare il nome completo come ?data.table::fread
.
Sintassi e caratteristiche
Sintassi di base
DT[where, select|update|do, by]
è usato per lavorare con le colonne di un data.table.
- La parte "dove" è l'argomento
i
- La parte "select | update | do" è l'argomento
j
Questi due argomenti vengono generalmente passati per posizione anziché per nome.
Una sequenza di passaggi può essere concatenata come DT[...][...]
.
Scorciatoie, funzioni speciali e simboli speciali all'interno di DT[...]
Funzione o simbolo | Gli appunti |
---|---|
.() | in diversi argomenti, sostituisce list() |
J() | in i , sostituisce list() |
:= | in j , una funzione utilizzata per aggiungere o modificare colonne |
.N | in i , il numero totale di righe in j , il numero di righe in un gruppo |
.I | in j , il vettore dei numeri di riga nella tabella (filtrato da i ) |
.SD | in j , il sottoinsieme corrente dei dati selezionato dall'argomento .SDcols |
.GRP | in j , l'indice corrente del sottoinsieme dei dati |
.BY | in j , l'elenco di valori per il sottoinsieme di dati corrente |
V1, V2, ... | nomi predefiniti per colonne senza nome create in j |
Entra a far parte di DT[...]
Notazione | Gli appunti |
---|---|
DT1[DT2, on, j] | unisciti a due tavoli |
i.* | prefisso speciale sulle colonne DT2 dopo l'unione |
by=.EACHI | opzione speciale disponibile solo con un join |
DT1[!DT2, on, j] | anti-join due tabelle |
DT1[DT2, on, roll, j] | unisciti a due tabelle, rotolando sull'ultima colonna in on= |
Rimodellamento, accatastamento e divisione
Notazione | Gli appunti |
---|---|
melt(DT, id.vars, measure.vars) | trasformare in formato lungo per più colonne, usa measure.vars = patterns(...) |
dcast(DT, formula) | trasformare in formato ampio |
rbind(DT1, DT2, ...) | stack elencato data.tables |
rbindlist(DT_list, idcol) | impila un elenco di dati.tables |
split(DT, by) | dividere un data.table in una lista |
Alcune altre funzioni sono specializzate per data.tables
Funzione (s) | Gli appunti |
---|---|
foverlaps | sovrapposizione di join |
merge | un altro modo di unire due tavoli |
set | un altro modo per aggiungere o modificare colonne |
fintersect , fsetdiff , funion , fsetequal , unique , duplicated , anyDuplicated | operazioni di teoria delle serie con righe come elementi |
CJ | il prodotto cartesiano di vettori |
uniqueN | il numero di righe distinte |
rowidv(DT, cols) | riga ID (da 1 a .N) all'interno di ciascun gruppo determinata da colonne |
rleidv(DT, cols) | ID gruppo (da 1 a .GRP) all'interno di ciascun gruppo determinato da serie di colonne |
shift(DT, n) | applica un operatore di turno a ogni colonna |
setorder , setcolorder , setnames , setkey , setindex , setattr | modificare gli attributi e ordinare per riferimento |
Altre caratteristiche del pacchetto
Caratteristiche | Gli appunti |
---|---|
IDate e ITime | numero intero di date e ore |