R中具有多个匹配条件的数据帧子集

R中具有多个匹配条件的数据帧子集,r,match,subset,R,Match,Subset,使用样本数据 > df1 <- data.frame(x=c(1,1,2,3), y=c("a","b","a","b")) > df1 x y 1 1 a 2 1 b 3 2 a 4 3 b > df2 <- data.frame(x=c(1,3), y=c("a","b")) > df2 x y 1 1 a 2 3 b 但这不是我想要的,因为df1[2,]=1,b被拉出以便移除。提前非常感谢您的帮助。您可以换一种方式:重新查找所有内容并删除重复项

使用样本数据

> df1 <- data.frame(x=c(1,1,2,3), y=c("a","b","a","b"))
> df1
  x y
1 1 a
2 1 b
3 2 a
4 3 b
> df2 <- data.frame(x=c(1,3), y=c("a","b"))
> df2
  x y
1 1 a
2 3 b

但这不是我想要的,因为df1[2,]=1,b被拉出以便移除。提前非常感谢您的帮助。

您可以换一种方式:重新查找所有内容并删除重复项

out <-rbind(df1,df2)
out[!duplicated(out, fromLast=TRUE) & !duplicated(out),]

  x y
2 1 b
3 2 a

从df2构建一组对:

prs <- with(df2, paste(x,y,sep="."))

我刚才回答了一个相同的问题:非常感谢你,德温。当我研究这个问题时,我已经查看了你之前回复的帖子,但是被问到的问题弄糊涂了,没有意识到我可以把它应用到我的问题上。再次表示歉意和感谢!我理解。从评论中可以看出,我也很困惑。你的问题更清楚了。这是另一个解决方案,它适用于这里的示例数据。但是,对于我的实际数据,它将无法工作,因为与df1等效的数据具有多个重复行。谢谢你!
prs <- with(df2, paste(x,y,sep="."))
df1[ paste(df1$x, df1$y, sep=".") %in% prs , ]