从数据帧循环计算

时间:2014-03-29 18:39:28

标签: sql r

我有一个来自SQLdf的大型数据集。我使用split通过查询中的索引字段对其进行排序,并list2env将这些字段拆分为多个数据框。这些数据框的名称将为1到178.分割后,我想对所有数据进行一些计算。我应该如何“调用”1到178的计算(可能每天都在变化)?

简化:一个数据集成为在索引上分割的n个数据帧(如下所示):

return date return benchmark_returen index 
28-03-2014  0.03     0.05             6095

通常为252 * 5 obs(IE:5年)

然后我想将索引上的这些分成(现在是178 dfs)

并从PerformanceAnalytics包执行典型的风险/回报分析,例如chart.Histogram或charts.PerformanceSummary。

在下一步中,我想将这些分组并将它们插入到每个索引的PDF中。 (图表/结果)。

1 个答案:

答案 0 :(得分:0)

正如其他人指出的那样,问题缺乏一个恰当的例子,但环境的索引可以像列表那样完成。为了构造一个列表,有数字作为索引值,需要使用反引号,访问环境时[[的参数需要是字符

> mylist <- list(`1`="a", `2`="b")
> myenv <- list2env(mylist)
> myenv$`1`
[1] "a"
> myenv[[as.character(1)]]
[1] "a"

如果要提取值(然后可能将它们放回环境中:

sapply(1:2, function(n) get(as.character(n), envir=myenv) )
[1] "a" "b"

myenv$calc <- with(myenv,  paste(`1`, `2`))