d1 <- data.table(
group_id1=1:4
)
d1$Cat_grouped <- list(letters[1:2],letters[3:2],letters[3:6],letters[11:12] )
并且
d_grouped <- data.table(
group_id2=1:4
)
d_grouped$Cat_grouped <- list(letters[1:5],letters[6:10],letters[1:2],letters[1] )
我希望能够根据
d_grouped$Cat_grouped
中的向量包含在d1$Cat_grouped
中的向量来合并这两个数据表。更精确地说,可能有两个匹配标准:
a)
d1$Cat_grouped
每个向量的所有元素必须在d_grouped$Cat_grouped
的匹配向量中。结果如下所示:
result_a <- data.table(
group_id1=c(1,2)
group_id2=c(1,1)
)
b) d1$Cat_grouped
向量中的至少一个元素必须匹配d_grouped$Cat_grouped
向量中的元素。
从而得到以下匹配结果:
result_b <- data.table(
group_id1=c(1,2,3,3),
group_id2=c(1,1,1,2)
)
我该如何实现a)或b)?最好用data.table的方式。
编辑1:添加了a)和b)的预期结果。
编辑2:将更多的组添加到了d_grouped中,因此分组变量重叠。这会破坏一些提出的解决方案。