根据基于两行的另一个数据框过滤数据

时间:2019-05-07 18:14:45

标签: r filter subset

我有两个数据集。

第一个数据集包括公司,季度和整个时间范围内的相应值。

    Quarter      Date            Company   value
    2012.1       2012-12-28      x         1
    2013.1       2013-01-02      y         2
    2013.1       2013-01-03      z         3

公司在整个时间内再次出现在数据集中,并多次出现。

另一个数据集是一个索引,其中包括公司标识符和索引中存在的季度(公司可以在多个季度中处于索引中)。

    Quarter      Date            Company   value
    2012.1       2012-12-28      x         1
    2014.1       2013-01-02      y         2
    2013.1       2013-01-03      x         3

现在,我只需要选择索引中同时(第一个季度)的公司,因为我拥有第一个数据集中的数据。

在上面的示例中,我需要两个季度的公司x的数据,但是由于数据在错误的季度中可用,因此公司y需要开除。

我尝试了包括过滤器,子集和匹配项在内的多种功能,但从未获得理想的结果。它总是过滤太多或太少。

data %>% filter(Company == index$Company & Quarter == index$Quarter)

data[Company == index$Company & Quarter = index$Quarter,]

我的情况有些不适。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

看看dplyr强大的join函数。这里inner_join可能会对您有所帮助

dplyr::inner_join(df1, df2, by=c("Company", "Quarter"))
相关问题