並列処理を使用してデータフレームに値を追加する際に問題があります。foreachパッケージを使用してデータフレームに行を追加します
私は何らかの計算を行い、データフレームを返す関数を持っています。これらの計算はランダムサンプリングです。
ので、私がやったことです:私はresdf
の結果を表示するとき、それは私が%do%
で%dopar%
を交換する場合、結果が正しく計算されますが、それはあまりにも遅いです
空
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)
だ...
これを少しでも引き上げるにはどうにかしていますか?
'foreach'と' dopar'がどこから来たのかを思い出させてください。そしてあなたの 'mydf'も - あなたの問題を再現することができます。 – Spacedman
mydfはランダムなデータフレームです。foreachはパッケージで、 'library(foreach)'と 'library(doMC)'、 'registerDoMC()'を追加してください。 – ifreak