我有一个大型数据框,其财务数据如下所示:
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中执行此操作。任何和所有帮助都非常感谢。
答案 0 :(得分:2)
R中的INNER JOIN由merge
完成。与这两列匹配的数据的唯一组合没有重叠,但如果有,则会随附:
merge(dat1, dat2, by=c("name", "hour"))
如果您想要OUTER JOIN(左或右),可以通过在merge
电话中指定all.x或all.y来发送它们。
答案 1 :(得分:0)
在这种情况下,简单的merge(financial_data, trade_data)
可以完成工作。