【问题标题】:Filtering Data based on another dataframe based on two rows基于两行的另一个数据框过滤数据
【发布时间】:2019-05-07 18:14:44
【问题描述】:

我有两个数据集。

第一个数据集包括公司、季度和整个时间跨度的相应值。

    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,]

我的情况似乎不太对劲。任何帮助表示赞赏!

【问题讨论】:

  • 为什么不merge Company 和 Quarter 的两个数据框?
  • 尝试加入或merge

标签: r filter subset


【解决方案1】:

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

dplyr::inner_join(df1, df2, by=c("Company", "Quarter"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2018-06-25
    • 1970-01-01
    • 2019-12-27
    • 2013-09-13
    • 2023-03-12
    • 2021-10-31
    相关资源
    最近更新 更多