Unire i dati con data.table in R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Forma generale della sintassi di data.table
DT[i, j, by]
| | |
| | --> raggruppare per cosa?
| -----> cosa fare?
--------> su quali righe?
Forma generale delle join con la sintassi data.table
DT[i, on]
| |
| ----> colonne chiave della join
--------> con quale data.table fare la join?
La join predefinita è una right join
demographics[shipping, on = .(name)]

Le variabili dentro list() o .() vengono cercate nei nomi colonna di entrambe le data.table
shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]
Si possono usare anche vettori di caratteri
join_key <- c("name")
shipping[demographics, on = join_key]
Ricorda: una left join equivale a una right join con l'ordine invertito:
shipping[demographics, on = .(name)]

Imposta nomatch = 0 per eseguire un inner join:
shipping[demographics, on = .(name), nomatch = 0]

Non possibile con la sintassi data.table, usa la funzione merge():
merge(demographics, shipping, by = "name", all = TRUE)

Filtra una data.table alle righe senza corrispondenza in un'altra data.table
demographics[!shipping, on = .(name)]

Unire i dati con data.table in R