匹配两个数据帧之间的整个列

时间:2017-07-28 18:21:35

标签: r dataframe match

我有两个数据帧

y <- data.frame(y1=seq(1:5), y2=letters[seq(1:5)])
x <- data.frame(x1=seq(1:5)*3,x2=seq(1:5), x3=letters[5:9], x4=letters[1:5])

我想从

中提取这些列
  

X

完全匹配

  

ý

列。

有人有任何线索吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我们可以循环并进行比较

x[sapply(y, function(.y) which(colSums(x== as.character(.y))== nrow(y)))]

或另一种选择是

i1 <- sapply(x, paste, collapse=",") %in% sapply(y, paste, collapse=",")
i1
#[1] FALSE  TRUE FALSE  TRUE
x[i1]