Joining Data with data.table in R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Obecná forma syntaxe data.table
DT[i, j, by]
| | |
| | --> seskupit podle čeho?
| -----> co provést?
--------> na kterých řádcích?
Obecná forma joinů v syntaxi data.table
DT[i, on]
| |
| ----> klíčové sloupce joinu
--------> připojit ke které data.table?
Výchozí join je right join
demographics[shipping, on = .(name)]

Proměnné uvnitř list() nebo .() jsou vyhledávány v názvech sloupců obou data.table
shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]
Lze také použít znakové vektory
join_key <- c("name")
shipping[demographics, on = join_key]
Left join je stejný jako right join s prohozeným pořadím:
shipping[demographics, on = .(name)]

Nastavte nomatch = 0 pro inner join:
shipping[demographics, on = .(name), nomatch = 0]

Se syntaxí data.table není možné, použijte funkci merge():
merge(demographics, shipping, by = "name", all = TRUE)

Filtruje data.table na řádky bez shody v jiné data.table
demographics[!shipping, on = .(name)]

Joining Data with data.table in R