Impostare e visualizzare le chiavi di data.table

Unire i dati con data.table in R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Impostare le chiavi di `data.table`

Impostare le chiavi evita di usare l'argomento on nei join

  • Utile se devi usare una data.table in molti join diversi

Ordina in memoria la data.table per le colonne chiave

  • Rende più veloci filtraggio e join

Puoi impostare e usare più colonne come chiavi

Unire i dati con data.table in R

La funzione `setkey()`

Le colonne chiave si passano come argomenti

setkey(DT, ...)
setkey(DT, key1, key2, key3)

setkey(DT, "key1", "key2", "key3")
# Per impostare tutte le colonne di DT come chiavi
setkey(DT)
Unire i dati con data.table in R

La funzione `setkey()`

Imposta le chiavi di entrambe le data.table prima di un join

setkey(dt1, dt1_key)
setkey(dt2, dt2_key)

Esegui un inner, right e left join:

# Inner join tra dt1 e dt2
dt1[dt2, nomatch = 0] 

# Right join tra dt1 e dt2 dt1[dt2]
# Left join tra dt1 e dt2 dt2[dt1]
Unire i dati con data.table in R

Impostare le chiavi in modo programmatico

Le colonne chiave sono fornite come vettore di caratteri

keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
Unire i dati con data.table in R

Recuperare le chiavi

haskey() verifica se hai impostato le chiavi

haskey(dt1)
TRUE

key() restituisce le colonne chiave impostate

key(dt1)
"dt1_key"
Unire i dati con data.table in R

Recuperare le chiavi

Quando non sono impostate chiavi

haskey(dt_no_key)
FALSE
key(dt_no_key)
NULL
Unire i dati con data.table in R

Visualizzare tutte le `data.table` e le loro chiavi

tables()
     NAME        NROW NCOL MB COLS                       KEY           
[1,] dt             3    4  1 key1,key2,key3,value       key1,key2,key3
[2,] dt1        1,000    3  1 dt1_key_column,value,group dt1_key
[3,] dt2        1,000    2  1 dt2_key_column,time        dt2_key
[4,] dt_no_key      5    2  1 id,color                                 
Total: 4MB
Unire i dati con data.table in R

Esercitiamoci!

Unire i dati con data.table in R

Preparing Video For Download...