Îmbinarea datelor cu data.table în R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Forma generală a sintaxei data.table
DT[i, j, by]
| | |
| | --> grupat după ce?
| -----> ce se face?
--------> pe care rânduri?
Forma generală a join-urilor cu sintaxa data.table
DT[i, on]
| |
| ----> coloanele cheii de join
--------> join cu care data.table?
Join-ul implicit este un right join
demographics[shipping, on = .(name)]

Variabilele din list() sau .() sunt căutate în numele coloanelor ambelor data.table
shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]
Se pot utiliza și vectori de caractere
join_key <- c("name")
shipping[demographics, on = join_key]
Un left join este echivalent cu un right join cu ordinea inversată:
shipping[demographics, on = .(name)]

Setați nomatch = 0 pentru un inner join:
shipping[demographics, on = .(name), nomatch = 0]

Nu este posibil cu sintaxa data.table; utilizați funcția merge():
merge(demographics, shipping, by = "name", all = TRUE)

Filtrează un data.table la rândurile fără corespondent în alt data.table
demographics[!shipping, on = .(name)]

Îmbinarea datelor cu data.table în R