我有两个数据集。
第一个数据集包括公司,季度和整个时间范围内的相应值。
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,]
我的情况有些不适。任何帮助表示赞赏!
答案 0 :(得分:2)
看看dplyr
强大的join
函数。这里inner_join
可能会对您有所帮助
dplyr::inner_join(df1, df2, by=c("Company", "Quarter"))