【发布时间】:2017-05-02 14:23:16
【问题描述】:
所以我在 R 中有 2 个数据框。一个是需要出售的股票和数量的表格 (SSTable),第二个是股票位于不同投资组合中的表格 (PTable)。除了 PTable 中的投资组合、库存和数量字段外,还有一个日期字段。 Ptable 需要从最早日期到最晚日期进行排序。
我需要构建某种类型的脚本来循环遍历 SSTable 和 PTable,并告诉我要从每个投资组合中卖出哪些股票以及卖出多少。我应该在它的末尾有 2 个输出表。
SSTableOP- 此表应仅包含无法出售的剩余份额。
PTableOP - 此表是我的执行表,指示要从哪个投资组合中以哪个顺序出售哪些股票。希望按投资组合然后股票名称对其进行排序。请注意,我的销售额不能超过我在任何投资组合中的总和。举个例子,如果我的 SSTable 表明我需要卖出 400 个 AAPL,但在我所有的投资组合中我只有 200 个,那么它应该告诉我只卖出我拥有的 200 个。现在 SSTableOP 中应该没有 AAPL 的记录。一个重要的注意事项是,我必须首先出售具有最近日期的投资组合中的单位。那是我必须卖出的顺序
我的所有组合投资组合中的销售额都不能超过我的销售额
这是一些示例数据以及我的数据框的结构
结构 SSTable
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 58 obs. of 2 variables:
$ ticker : chr
$ Units : int
结构 PTable
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 1030 obs. of 4
variables:
$ Portfolio : Factor w/ 2665 levels ".
$ ticker : Factor w/ 4677 levels .
$ Units : int
$ Date : POSIXct, format:
SSTable - 数据
ticker Units
APPL 400
GOOG 1700
MFC 800
PWF 200
GWG 500
SUN 600
ARIA 200
HEI 100
GEO 300
PTable 数据
Portfolio ticker units date
HGFR 6/17 APPL 200 20/04/2017
HGFR 6/17 GOOG 800 20/04/2017
HGFR 6/17 MFC 200 20/04/2017
SDSDF14 SUN 600 22/04/2017
DFDS11 GOOG 1700 25/04/2017
DFDS11 ARIA 100 25/04/2017
SDSDF14 ARIA 100 22/04/2017
SDSDF14 GEO 50 22/04/2017
SDSDF14 HEI 50 22/04/2017
HGFR 6/17 GWG 250 20/04/2017
GDSD114 HEI 50 26/04/2017
GDSD114 GEO 150 26/04/2017
GDSD114 PWF 50 26/04/2017
PTableOP
SSTableOP
ticker Units
APPL 200
MFC 600
PWF 150
GWG 250
GEO 100
【问题讨论】: