Combiner des données avec data.table en R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Forme générale de la syntaxe data.table
DT[i, j, by]
| | |
| | --> regrouper par quoi ?
| -----> que faire ?
--------> sur quelles lignes ?
Forme générale des jointures en syntaxe data.table
DT[i, on]
| |
| ----> colonnes clés de jointure
--------> avec quel data.table joindre ?
La jointure par défaut est une jointure à droite
demographics[shipping, on = .(name)]

Les variables dans list() ou .() sont recherchées parmi les noms de colonnes des deux data.table
shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]
Des vecteurs de caractères peuvent aussi être utilisés
join_key <- c("name")
shipping[demographics, on = join_key]
Rappel : une jointure à gauche équivaut à une jointure à droite en inversant l'ordre :
shipping[demographics, on = .(name)]

Définissez nomatch = 0 pour effectuer une jointure interne :
shipping[demographics, on = .(name), nomatch = 0]

Impossible avec la syntaxe data.table ; utilisez la fonction merge() :
merge(demographics, shipping, by = "name", all = TRUE)

Filtrer un data.table vers les lignes sans correspondance dans un autre data.table
demographics[!shipping, on = .(name)]

Combiner des données avec data.table en R