【发布时间】:2013-01-26 18:30:39
【问题描述】:
我在使用并行处理将值附加到数据帧时遇到问题。
我有一个函数会进行一些计算并返回一个数据帧,包括这些计算是随机抽样。
所以我做的是:
randomizex <- function(testdf)
{
foreach(ind=1:1000)%dopar%
{
testdf$X = sample(testdf$X,nrow(testdf), replace=FALSE)
fit = lm(X ~ Y, testdf)
newdf <- rbind(newdf, data.frame(pc=ind, err=sum(residuals(fit)^2) ))
}
return(newdf)
}
resdf = randomizex(mydf)
当我查看resdf的结果时,它是空的
如果我将%dopar% 替换为%do%,则结果计算正确,但速度太慢了..
有什么办法可以提升一点吗??
【问题讨论】:
-
提醒我们
foreach和dopar来自哪里。还有你的mydf- 这样我们就可以重现你的问题。 -
mydf 只是一个随机数据帧,foreach 是一个包,你应该添加
library(foreach)和library(doMC),registerDoMC()
标签: r foreach parallel-processing