我希望能够对数据框中PERMNO列中的每个公司编号进行计算,以下是摘要:
> summary(companydataRETS)
PERMNO RET
Min. :10000 Min. :-0.971698
1st Qu.:32716 1st Qu.:-0.011905
Median :61735 Median : 0.000000
Mean :56788 Mean : 0.000799
3rd Qu.:80280 3rd Qu.: 0.010989
Max. :93436 Max. :19.000000
到目前为止,我的解决方案是创建一个包含所有可能公司编号的变量。
compns <- companydataRETS[!duplicated(companydataRETS[,"PERMNO"]),"PERMNO"]
然后使用并行计算的 foreach 循环调用我的函数 get.rho(),该函数执行所需的计算。
rhos <- foreach (i=1:length(compns), .combine=rbind) %dopar%
get.rho(subset(companydataRETS[,"RET"],companydataRETS$PERMNO == compns[i]))
我已经对我的一部分数据进行了测试,一切正常。问题是我有7200万个观察值,即使让电脑整夜运行,它仍然无法完成。
我是R的新手,所以我想我的代码结构可以改进,并且有更好的(更快,计算量更小)方法来执行相同的任务(也许使用apply或with,但我不理解)。 有什么建议吗?
unique(companydataRETS$PERMNO)
。 - Matt Parker