给出两个数据帧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)
```
答案 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
这里要做的是,在连接列中添加一个您肯定不会在数据中遇到的符号(:
),然后比较这两个向量。它节省了我很多时间。