如何比较两个数据帧的内容?

时间:2019-04-24 10:22:35

标签: r dataframe for-loop

给出两个数据帧A和B,其中A长于B。 A行中的值必须出现在B行中。 如果B中不存在A行,则应将其删除。 最后,A应该与B具有相同的行。 我需要换循环吗? 感谢您的帮助,希望我能很好地说明问题。

例如:

x=c(1,3,7,1,1,4,3)
y=c(2,5,5,6,2,6,4)
A<-cbind.data.frame(x,y)

x2<-c(1,3,5,1,3)
y2<-c(2,4,7,6,8)
B<-cbind.data.frame(x2,y2)



##A should like this at the end
```
x<-c(1,1,1,3)
y<-c(2,6,2,4)
A<-c(x,y)
```

1 个答案:

答案 0 :(得分:1)

我过去使用过的东西:

i = interaction(A,sep=":")%in%interaction(B,sep=":")
i
TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE

A[i,]
  x y
1 1 2
4 1 6
5 1 2
7 3 4

这里要做的是,在连接列中添加一个您肯定不会在数据中遇到的符号(:),然后比较这两个向量。它节省了我很多时间。