::data.table(r1 = c("S1", "S2"), r3 = c("S2", "S1")),
b = data.table::data.table(r1 = c("S1", "S2")...本质上是 data.table 体格的泛型函数不支持类似基础包中的操作。
如何编写代码支持对上述数据集的连接操作?...如果 be_join 不为空,进行如下的循环:
如果存在,则将这个子集和 to_join 按共同列合并
如果不存在,使用循环位移一位,将当前 be_join 的第 2 个子集移动为 第 1 个。...检查 be_join 第一个子集的列与 to_join 存在共同列
等待循环结束
我们可以查看结果:
to_join[, c("r1", "r2", "r3", "r4", "r5")]
#> r1...2 S1 S2 S2 S1 S2
更新
在后面的一些使用过程中发现基础包的 merge() 函数在进行连接操作时会输出有问题的结果,所以建议使用的小伙伴仔细检查结果。