【发布时间】:2015-07-02 17:42:27
【问题描述】:
我正在尝试了解如何通过并行循环返回包含四个表的列表。目前,我有一个函数calculatef1(k,i),它返回一个由四个元素组成的向量c(score1,score2,score3,score4)。
aggregate_scores <-
foreach(k = 1:num_metrics, .combine='cbind') %:%
foreach(i = 1:10, .combine='c') %dopar% {
x = c("boot","dtw","sqldf")
lapply(x, require, character.only=T)
f1 <- NA
try(f1<-calculatef1(k,i),silent=TRUE)
f1
}
现在,这个并行循环返回一个包含 40 行和 num_metrics 列的表,但是我将如何更改我的 foreach 循环,所以我返回一个包含 4 个表的列表,每个表对应一个不同的分数,而不是(或至少类似的东西)?
谢谢!
*为了重现性,将其用于calculatef1函数...
calculatef1 <- function(k,i){
score1 <- k+i
score2 <- k-i
score3 <- k*i
score4 <- k^i
c(score1,score2,score3,score4)
}
我想返回一个包含四个数据帧的列表,例如,第 3 个数据帧的以下对 k,i 的得分为 3。
1*1=1 2*1=2 3*1=3 ...
1*2=2 2*2=4 3*2=6 ...
1*3=3 2*3=6 3*3=9 ...
. . .
. . .
同样,第 4 个数据帧将有 1^1、2^1、3^1、1^2、2^2 等。你明白了。
【问题讨论】:
-
最好能提供一个可重现的例子。
-
刚刚添加了一些更多的东西以实现可重复性。
-
导入这些库的目的是什么?我假设它们与真正的calculatef1 有关。此外,您还应该提供所需的输出。表应该包括什么?因为据我所见,第一个循环输出一维数组
-
忽略这些库。我在这里更改了我的 calculatef1 代码以避免显示公司数据。
标签: r parallel-processing