根据匹配列将行从一个数据帧移动到另一个数据帧

时间:2017-03-01 14:48:22

标签: r

我很抱歉提出这个问题,因为我过去看过类似的东西,但我找不到它(所以重复是可以理解的)。

我有2个数据框,我想将出现在2个数据框中的所有(匹配)客户移动到其中一个中。请注意我想添加整行。

以下是一个例子:

# df1

customer_ip   V1  V2
   1          15  20
   2          12  18

# df2

customer_ip   V1  V2
   2          45  50
   3          12  18

我希望我的新数据框看起来像:

# df1

customer_ip   V1  V2
   1          15  20
   2          12  18
   2          45  50

# df2

customer_ip   V1  V2

   3          12  18

提前谢谢!

2 个答案:

答案 0 :(得分:3)

就是这样。

df1<-rbind(df1,df2[df2$customer_ip %in% df1$customer_ip,])

df2<-df2[!(df2$customer_ip %in% df1$customer_ip),]
编辑:Gaurav&amp; Sotos在我之前来到这里,我的写作基本上是相同的答案,但是我会把它留在这里,因为它显示的代码没有多余的&#39;其中&#39;

答案 1 :(得分:1)

这应该可以解决问题:

#Add appropriate rows to df1
df1 <- rbind(df1, df2[which(df2$customer_ip %in% df1$customer_ip),])

#Remove appropriate rows from df2
df2 <- df2[-which(df2$customer_ip %in% df1$customer_ip),]