使用在并行处理共享数据帧我想使用的foreach包并行for循环:如何使用的foreach
原始的代码如下所示:
data_df=data.frame(...) # the data frame where original data stored
result_df=data.frame(...) # the data frame where result data to be stored
for(i in 1:10)
{
a=data_df[i,]$a
b=data_df[i,]$b
sum_result=a+b
sub_result=a-b
result_df[i,]$sum_result=sum_result
result_df[i,]$sub_result=sub_result
}
我用索引i为行数,从数据框中获取数据并将数据存储回另一个数据框。
但是,如果我改变:
for(i in 1:10)
到
foreach(i=1:10) %dopar%
它运行超级快,但结果似乎只存储在数据帧的一列。我怎样才能将两列保存在一起?
我应该如何编写共享数据帧才能并行?
为data_df
a b
1 1
2 4
4 8
9 6
2 3
并行化,每个子进程获得一个新的环境。因此,最后你需要返回data.frame,以便每个子进程输出可以由父进程一起存储 –
也为我们添加了一个示例数据示例来处理! –
感谢您指出,我已添加 – lserlohn