Jointure de données avec data.table en R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics

Avec la syntaxe 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
Avec la fonction 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
L'argument suffixes peut ajouter du contexte utile :
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
Renommer toutes les colonnes avec 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
Les clés de jointure pour les data.frames peuvent se trouver dans les noms de lignes
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
Jointure de données avec data.table en R