【发布时间】:2019-04-24 10:22:35
【问题描述】:
给定两个数据帧 A 和 B,其中 A 比 B 长。 A的行中的值必须存在于B的行中。 如果B中不存在A的一行,则应将其删除。 最后 A 应该有与 B 相同的行。 我需要一个for循环吗? 感谢您的帮助,希望我能很好地说明问题。
例如:
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)
```
【问题讨论】:
-
类似:
merge(A, B, by.x = c("x", "y"), by.y = c("x2", "y2")) -
@RonakShah 这是一个骗子,我只是想找到合适的。
-
合并后如需保留订单,见here。
-
你可以做
merge(B, A, by.x = names(B), by.y = names(A))