【发布时间】:2017-07-25 01:24:21
【问题描述】:
我正在尝试通过匹配一列或另一列的值将数据帧的一列中的值添加到另一个数据帧。
例如:
我有 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))]
但它只匹配“pair”列,忽略“pair1”列。
【问题讨论】:
-
在第二个数据框
df2中列出了 8 列数据,但只提供了 6 个列名。 -
@Tim Biegeleisen 还有 6 列数据。例如,在第 1 行中,值“1 5”位于“pair”下方,值“5 1”位于“pair1”下方
-
在
df1中,如果我理解正确,您可以使用列名Pair_ID以避免混淆。