表1:
ID Sex
1: 12345 M
2: 23456 M
3: 34567 F
4: 45678 F
5: 56789 F
表2:
ID name
1: 12345 sam
2: 23456 jack
3: 23456 tom
4: 56789 steve
5: 56789 rob
我需要合并这两个表以获得:
ID Sex name
1: 12345 M sam
2: 23456 M jack,tom
3: 34567 F
4: 45678 F
5: 56789 F steve,rob
我尝试使用Join
函数,但不允许我将这些名称组合在一起,是否有解决此问题的好方法?
答案 0 :(得分:2)
如果这些是data.tables,则一个选项是通过第二个数据集“ dt2”中的“ ID” paste
{name}并与“ ID”中的第一个(“ dt1”)联接,在第一个数据集中创建“名称”列
library(data.table)
dt1[dt2[, .(name = toString(name)), ID], name := name, on = .(ID)]
dt1
# ID Sex name
#1: 12345 M sam
#2: 23456 M jack, tom
#3: 34567 F <NA>
#4: 45678 F <NA>
#5: 56789 F steve, rob
答案 1 :(得分:0)
这是三个独立操作的组合,本网站上的其他答案对此进行了详细介绍:
您要将表连接在一起:
然后从长格式扩展到宽格式
,最后将这些多个“名称”列粘贴到单个名称列中