在 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 的连接键可能在行名中
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 进行数据表连接