0

我有一个包含财务数据的大型数据框,如下所示:

id      Tradedate    name          hour open    close
19897   2013-01-30   instrument1   1   18.01   13.50
19898   2013-01-30   instrument2   2   15.72    8.99
19899   2013-01-30   instrument3   3   12.80   11.42
19900   2013-01-30   instrument4   4   12.71   12.85

上述数据框中有几千种仪器。我有另一个“待交易”数据框,包含十几种工具,如下所示:

id    name   hour 
1 instrument3 17     
2 instrument4 24    
3 instrument5 15    
4 instrument6 19

我遇到的问题是我无法subset返回仅包含“待交易”向量中的工具小时组合的数据框。我试过这个:subset(financial_data, subset= paste(name, hour) %in% paste(to_be_traded$name, portfolio$hour)),但它返回完整的财务数据框。我知道这可以在 sql 中用类似的东西来完成INNER JOIN,但我不知道如何在 R 中做到这一点。非常感谢任何和所有的帮助。

4

2 回答 2

2

R 中的 INNER JOIN 是通过merge. 与这两列匹配的数据的唯一组合没有重叠,但如果有,它们将与以下内容一起交付:

merge(dat1, dat2, by=c("name", "hour"))

如果您想要 OUTER JOIN(左或右),可以通过在merge调用中指定 all.x 或 all.y 来传递它们。

于 2013-07-10T16:53:57.203 回答
0

在这种情况下,一个简单merge(financial_data, trade_data)的工作就完成了。

于 2013-07-10T16:57:15.207 回答