【发布时间】:2016-05-03 18:27:46
【问题描述】:
我目前正在 Perl 中执行此操作,我想找到一种更有效/更快的方法来执行此操作。任何建议表示赞赏!
我要做的是从 csv/xlsx 文件中提取某些数据并将它们写入 Excel,以便 Bloomberg 可以读取。
以下是 csv 文件的示例:
Account.Name Source.Number Source.Name As.Of.Date CUSIP.ID Value
AR PSF30011202 DK 3/31/2016 111165194 100.00
AR PSF30011602 MOF 3/31/2016 11VVA0WE4 150.00
AR PSF30014002 OZM 3/31/2016 11VVADWF3 125.00
FI PSF30018502 FS 3/31/2016 11VVA2625 170.00
FI PSF30018102 IP 3/31/2016 11VVAFPH2 115.00
....
我希望 Excel 文件中的内容是,如果 Account.Name = AR,则:
- 单元格 A1 =Source.Name。例如。丹麦。
- 单元格 A2 = 值的权重。例如。 DK的权重为0.151515(100/660)。
- 单元格 A3 = =BDH("CUSIP.ID CUSIP","PX_LAST","01/01/2000","As.Of.Date","PER=CM")。例如。 =BDH("111165194 CUSIP","PX_LAST","01/01/2000","03/31/2016","PER=CM")
- 单元格 D1 =MOF
- 单元格 D2 =0.227273
- 单元 D3 = =BDH("11VVA0WE4 CUSIP","PX_LAST","01/01/2000","03/31/2016","PER=CM")
中间有两列,因为如果 DK 的 CUSIP 是有效的,那么 A3 和之后就是日期; B3 及以后将包含来自彭博的月度价格; C4 及之后将是每月价格的对数回报 (=LN(B4/B3))。
下面是它的样子:
【问题讨论】:
-
你在 R 中这样做有什么原因吗?你有使用 VBA 的经验吗?
-
我没有使用 VBA 的经验。我正在 Perl 中执行此操作,并试图找到一种更有效/更快的方法来执行此操作。
-
只有真正了解 R 的情况下,R 才会更快。
-
为了得到答案,我建议你从你的具体案例中抽象出来,把你的例子简化到最低限度。 (也许形成一个新问题以再次引起关注。)我认为没有人愿意坐下来花一个小时将数据转换为“有问题的”(从分析的角度来看?)格式。从对您的最小示例的响应中,您应该能够在以后获得所需的位置。