我在使用並行處理將值附加到數據框時遇到問題。使用foreach包將行附加到數據框
我有一個函數,會做一些計算並返回一個數據幀,包括這些計算是一個隨機抽樣。
所以我所做的是:
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
的結果,它是空的
如果我%do%
取代%dopar%
結果被正確地計算,但它太慢了..
有無論如何推動這一點?
提醒我們'foreach'和'dopar'來自哪裏。而且你的'mydf'也是 - 所以我們可以重現你的問題。 – Spacedman 2013-02-11 16:09:55
mydf只是一個隨機數據框,而foreach是一個包,你應該添加'library(foreach)'和'library(doMC)','registerDoMC()' – ifreak 2013-02-11 16:37:23