R 的 data.table 資料合併
Scott Ritchie
Postdoctoral Researcher in Systems Genomics

使用 data.table 語法
parents[children, on = .(name = parent)]
name gender age i.name i.gender i.age
1: Sarah F 41 Oliver M 5
2: Max M 43 Sebastian M 8
3: Qin F 36 Kai-lee F 7
使用 merge() 函式
merge(x = children, y = parents, by.x = "parent", by.y = "name")
parent name gender.x age.x gender.y age.y
1: Max Sebastian M 8 M 43
2: Qin Kai-lee F 7 F 36
3: Sarah Oliver M 5 F 41
suffixes 引數可加入實用脈絡:
merge(children, parents, by.x = "parent", by.y = "name",
suffixes = c(".child", ".parent"))
parent name gender.child age.child gender.parent age.parent
1: Max Sebastian M 8 M 43
2: Qin Kai-lee F 7 F 36
3: Sarah Oliver M 5 F 41
用 setnames() 重新命名所有欄位
setnames(parents, c("parent", "parent.gender", "parent.age"))setnames(parents, old = c("gender", "age"), new = c("parent.gender", "parent.age"))parents
parent parent.gender parent.age
1: Sarah F 41
2: Max M 43
3: Qin F 36
data.frame 的連接鍵有時在 rownames 中
parents
gender age
Sarah F 41
Max M 43
Qin F 36
parents <- as.data.table(parents, keep.rownames = "parent")
parents
parent gender age
1: Sarah F 41
2: Max M 43
3: Qin F 36
R 的 data.table 資料合併