Kết hợp dữ liệu với data.table trong R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Dạng tổng quát của cú pháp data.table
DT[i, j, by]
| | |
| | --> nhóm theo gì?
| -----> làm gì?
--------> trên những hàng nào?
Dạng tổng quát của cú pháp join trong data.table
DT[i, on]
| |
| ----> cột khóa join
--------> join với data.table nào?
Join mặc định là right join
demographics[shipping, on = .(name)]

Biến bên trong list() hoặc .() được tra trong tên cột của cả hai data.table
shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]
Cũng có thể dùng vector ký tự
join_key <- c("name")
shipping[demographics, on = join_key]
Nhớ rằng left join tương đương right join khi đảo thứ tự:
shipping[demographics, on = .(name)]

Đặt nomatch = 0 để thực hiện inner join:
shipping[demographics, on = .(name), nomatch = 0]

Không thể làm bằng cú pháp data.table, hãy dùng hàm merge():
merge(demographics, shipping, by = "name", all = TRUE)

Lọc data.table còn lại các hàng không khớp trong data.table khác
demographics[!shipping, on = .(name)]

Kết hợp dữ liệu với data.table trong R