Définir et afficher les clés d'un data.table

Jointure de données avec data.table en R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Définir des clés `data.table`

Définir des clés évite d'utiliser l'argument on lors d'une jointure

  • Utile si vous utilisez un data.table dans plusieurs jointures

Trie le data.table en mémoire selon la ou les colonnes clés

  • Accélère le filtrage et les jointures

Plusieurs colonnes peuvent être définies et utilisées comme clés

Jointure de données avec data.table en R

La fonction `setkey()`

Les colonnes clés sont passées en arguments

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

setkey(DT, "key1", "key2", "key3")
# Pour définir toutes les colonnes de DT comme clés
setkey(DT)
Jointure de données avec data.table en R

La fonction `setkey()`

Définissez les clés des deux data.table avant une jointure

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

Effectuer des jointures interne, droite et gauche :

# Jointure interne de dt1 et dt2
dt1[dt2, nomatch = 0] 

# Jointure droite de dt1 et dt2 dt1[dt2]
# Jointure gauche de dt1 et dt2 dt2[dt1]
Jointure de données avec data.table en R

Définir des clés par programmation

Les colonnes clés sont fournies sous forme de vecteur de caractères

keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
Jointure de données avec data.table en R

Obtenir les clés

haskey() vérifie si des clés sont définies

haskey(dt1)
TRUE

key() renvoie les colonnes clés définies

key(dt1)
"dt1_key"
Jointure de données avec data.table en R

Obtenir les clés

Quand aucune clé n'est définie

haskey(dt_no_key)
FALSE
key(dt_no_key)
NULL
Jointure de données avec data.table en R

Afficher tous les `data.table` et leurs clés

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
Jointure de données avec data.table en R

Passons à la pratique !

Jointure de données avec data.table en R

Preparing Video For Download...