如何基于几列之间的相等性进行过滤

时间:2019-04-27 12:09:09

标签: r filter dplyr

我有一个与下面类似的数据框。 我想按产品对它进行过滤,以便只保留月份== start_month => start_year的行。但是在接下来的几年里,我需要保留所有的几个月。

product year month start_year start_month
A       2015   1     2015        10
A       2015   2     2015        10
A       2015   3     2015        10
A       2015   4     2015        10
A       2015   5     2015        10
A       2015   6     2015        10
A       2015   7     2015        10
A       2015   8     2015        10
A       2015   9     2015        10
A       2015   10     2015       10
A       2015   11     2015       10
A       2015   12     2015       10
A       2016   1     2015        10 
A       2016   2     2015        10
A       2016   3     2015        10
A       2016   4     2015        10
...
B       2015   1     2015        11
B       2015   2     2015        11
...

我尝试过:

  df <- df %>%
  group_by(product) %>% 
  filter(month >= start_month)

但这也会在接下来的几年中过滤掉几个月。

因此最终结果应如下所示:

product year month start_year start_month
A       2015   10     2015       10
A       2015   11     2015       10
A       2015   12     2015       10
A       2016   1     2015        10 
A       2016   2     2015        10
A       2016   3     2015        10
A       2016   4     2015        10
...
A       2018   12    2015        10
...

0 个答案:

没有答案