我正在尝试通过匹配来自一列或另一列的值来将数据帧的一列中的值添加到另一个数据帧 .
例如:
我有2个不同长度的df,而df2没有df1中列出的所有对:
DF1
Year Territory Pair_ID
1 1999 BGD 1 5
2 2000 TAR 6 2
3 2001 JAM 3 7
4 2002 TER 9 2
DF2
ID1 ID2 pair pair1 type detail
1 1 5 1 5 5 1 PO N/A
2 2 6 2 6 6 2 SB N/A
3 3 7 3 7 7 3 PO N/A
4 4 8 4 8 8 4 SB N/A
5 4 3 4 3 3 4 SB N/A
我要这个:
Year Territory Pair_ID type
1 1999 BGD 1 5 PO
2 2000 TAR 6 2 SB
3 2001 JAM 3 7 PO
4 2002 TER 9 2 N/A
我不想完全合并2个数据帧 . 我只想通过将df1中的“Pair”列与df2中的“pair”列或“pair1”列相匹配,将df2中的“type”列添加到df1 . 我还希望用df2中没有找到的对“N / A”填写 .
我找不到解决这个特定问题的任何东西 .
我试过这个:
df1$type <- df2$type[match(df1$Pairs, c(df2$pair,df2$pair1))]
但它只与“对”列匹配,并忽略“pair1”列 .
2 回答
sqldf
的好例子:结果
尝试类似的东西