Sintaxa data.table

Îmbinarea datelor cu data.table în R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Recapitularea sintaxei data.table

Forma generală a sintaxei data.table

DT[i, j, by]
   |  |  |
   |  |  --> grupat după ce?
   |  -----> ce se face?
   --------> pe care rânduri?
Îmbinarea datelor cu data.table în R

Join-uri

Forma generală a join-urilor cu sintaxa data.table

DT[i, on]
   |   |
   |   ----> coloanele cheii de join
   --------> join cu care data.table?
Îmbinarea datelor cu data.table în R

Right joins

Join-ul implicit este un right join

demographics[shipping, on = .(name)]

Îmbinarea datelor cu data.table în R

Argumentul on

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]
Îmbinarea datelor cu data.table în R

Left joins

Un left join este echivalent cu un right join cu ordinea inversată:

shipping[demographics, on = .(name)]

Îmbinarea datelor cu data.table în R

Inner joins

Setați nomatch = 0 pentru un inner join:

shipping[demographics, on = .(name), nomatch = 0]

Îmbinarea datelor cu data.table în R

Full joins

Nu este posibil cu sintaxa data.table; utilizați funcția merge():

merge(demographics, shipping, by = "name", all = TRUE)

Îmbinarea datelor cu data.table în R

Anti-joins

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

Să exersăm!

Îmbinarea datelor cu data.table în R

Preparing Video For Download...