【发布时间】:2019-11-20 20:30:21
【问题描述】:
我有 2 个要合并的数据集
Dataset_1:
id| value_1
1 | a
1 | b
1 | b
2 | a
2 | a
2 | b
...
Dataset_2:
id| value_2
1 | 123
1 | 433
1 | 234
2 | 222
2 | 333
2 | 333
...
结果应该是这样的:
id| value_1 | value 2
1 | a | 123
1 | b | 433
1 | b | 234
2 | a | 222
2 | a | 333
2 | b | 333
如果尝试使用这些功能:
inner_join(dataset_1,dataset_2,by="id")
and
full_join(dataset_1,dataset_2,by="id")
and
merge(dataset_1,dataset_2,by="id")
但我总是得到 2 个数据集的所有可能组合,而不是组合的一个。 它应该很简单,但我无法弄清楚我做错了什么。
id 是 double,value_1 是 chr,value_2 是 int。
感谢您的帮助!
【问题讨论】:
-
在你的情况下,试试
cbind。如果你想使用连接,你必须有一个规则,Dataset_1的哪一行要与Dataset_2的哪一行连接。例如,为什么在您预期输出的第二行value 2等于433而不是234。 -
我相信连接函数默认为“自然连接”,因为 id cols 中有重复的 id 值?试试 '?inner_join' 来查看帮助文件。
-
最终你可以使用
cbind(...)