【问题标题】:Pull Matching Data from 2 Data Frames Using dplyr or Purrr [duplicate]使用 dplyr 或 Purrr 从 2 个数据帧中提取匹配数据 [重复]
【发布时间】:2019-06-24 22:10:24
【问题描述】:

我有 2 个数据框。第一个数据框有 2 列(代码、日期),第二个数据框有 3 列(代码、日期、价格)。第一个数据框每个 Ticker 只有 1 行,而第二个数据框每个 Ticker 有很多行。例如。

df1

Ticker   Date
GS       2019-01-01
AAPL     2019-02-19
GE       2019-02-14

df2

Ticker  Date        Price
GS      2019-01-01  100
GS      2019-10-10  105
AAPL    2019-02-19  210
AAPL    2019-05-05  225
GE      2019-02-14  28
GE      2019-02-21  27

我想按股票代码分组并仅提取具有相同日期和股票代码的行。

例如这样的。

df2 %>% group_by(Ticker, Date) %>% slice(#match df1 Ticker and Date)%>% un_group()

Ticker   Date        Price
GS       2019-01-01   100
AAPL     2019-02-19   210
GE       2019-02-14    28

最后,如果你能在 purrr 中展示一种方法,那就太棒了。非常感谢你。

【问题讨论】:

  • 看来你需要inner_joininner_join(df1, df2)
  • 哦!我明白你在说什么。 2列内连接!谢谢你。我不知道我能做到这一点!
  • 您是否有不想使用 JOIN 的特定原因?这可能有助于我们找出您所面临的具体限制,并帮助我们做出更好的回答
  • 我不知道我可以加入 2 列。 akrun 最初发布的链接帮助解决了我的问题
  • 太棒了!对于以后来的人,您可以通过将向量传递给 by= 参数来加入多个列

标签: r dplyr data.table tidyverse purrr


【解决方案1】:

这个问题的解决方案是使用 dplyr inner_join。我能够指定两个要加入的列。

#solution
inner_join(df1, df2, by = c("Ticker", "Date"))

您实际上可以将列向量传递给 by 函数。感谢 divibisan

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2017-12-27
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多