R 在两个数据帧之间匹配整列

R 在两个数据帧之间匹配整列,r,dataframe,match,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]) y我们可以循环并进行比较 x[sapply(y, function(.y) which(colSums(x== as.character(.y))== nrow(y)))] 或者另一种选择是 i1 <-

我有两个数据帧

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])

y我们可以循环并进行比较

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]

i1此:
x[x%in%y]
No wait,什么意思,但完全匹配?哪列有哪列?我试过了,但是输出有3列而不是2列。所以你想要
y
?但是您想将其作为
x
x@Masoud的子集,第二个解决方案应该适用于新的example@akrun如果我们没有字母,而是所有的数值呢?@JohnnyFactolive通过使用
粘贴
选项,它应该会得到预期的输出。但是,您可能需要检查精度达到的浮点/双精度picture@akrun再次感谢你