首页 > 解决方案 > 使用 R 中的第二个数据框按两列过滤大型数据框

问题描述

我有一个如下所示的数据框:

library(tidyverse)

full.df<-tibble(x = c(1.5, 2.5, 3.5, 5.6, 7.4),
                y = c(4.5, 4.3, 2.6, 5.6, 7.6),
                a = c(1, 2, 3, 4, 5),
                b = c(5, 6, 7, 8, 9))

第二个数据框本质上是列&的子集,full.df但缺少列:ab

subset.df<-tibble(x = c(1.5, 3.5, 7.4), 
                  y = c(4.5, 2.6, 7.6))

如何过滤&full.df使用& from ?我希望返回这个:xyxysubset.df

# A tibble: 3 x 4
      x     y     a     b
  <dbl> <dbl> <dbl> <dbl>
1   1.5   4.5     1     5
2   3.5   2.6     3     7
3   7.4   7.6     5     9

我已经尝试过full.df %>% filter(x == subset.df$x & y == subset.df$y),但这只会返回第一行。

标签: rdplyr

解决方案


您正在寻找

full.df %>% right_join(subset.df, by = c('x','y'))

推荐阅读