【发布时间】:2026-02-11 12:15:01
【问题描述】:
我有 2 个数据框,我试图根据全部/部分匹配将它们合并在一起。这 2 个数据帧有一列具有匹配的标识符 (ID2),但是其中一个数据帧中的某些行可以具有由“|”分隔的标识符组合符号。
两个数据帧结果的基本合并
df1 <- data.frame(
ID1 = c("A1", "A2", "A3", "A4", "A5"),
ID2 = c("B1|B2", "B1", "B3", "B6|B4", "B0|B6|B3")
)
df2 <- data.frame(
ID3 = c("C1", "C2", "C3", "C4", "C5"),
ID2 = c("B1", "B2", "B3", "B4", "B5")
)
merge(df1, df2, by = "ID2")
ID2 ID1 ID3
1 B1 A2 C1
2 B3 A3 C3
这会导致一个数据帧中只找到了 2 个匹配项,但我还想为诸如“B0|B6|B3”之类的行找到匹配项,其中 B0 和 B6 不存在于第二个数据帧中,但是 B3仍然是 2 个数据帧之间的匹配项。
所需的输出如下所示:
ID1 ID2 ID3
1 A1 B1|B2 C1|C2
2 A2 B1 C1
3 A3 B3 C3
4 A4 B6|B4 C4
5 A5 B0|B6|B3 C3
【问题讨论】: