我有一个包含财务数据的大型数据框架,如下所示:
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中做到这一点。非常感谢任何帮助。
发布于 2013-07-10 16:53:57
R中的内连接是由merge
完成的。与这两列匹配的数据的唯一组合没有重叠,但如果有重叠,它们将以如下方式提供:
merge(dat1, dat2, by=c("name", "hour"))
如果您需要外部连接(左或右),可以通过在merge
调用中指定all.x或all.y来提供它们。
发布于 2013-07-10 16:57:15
在这种情况下,一个简单的merge(financial_data, trade_data)
就可以完成这项工作。
https://stackoverflow.com/questions/17576365
复制