append-Zeilen dataframe mit foreach-Paket

Ich habe ein problem mit dem Anhängen von Werten an einen Daten-frame durch parallele Verarbeitung.

Ich habe eine Funktion, die einige Berechnung und liefert ein dataframe, einschließlich dieser Berechnung ist ein Zufallsprodukt.

also, was ich gemacht habe ist :

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)

wenn ich das Ergebnis betrachten resdf ist leer

wenn ich ersetzen %dopar% mit %do% das Ergebnis wird korrekt berechnet, aber es ist zu langsam ..

ist es sowieso zu steigern, das ein bisschen ??

  • erinnern uns daran, wo foreach und dopar kommen. Und Ihre mydf zu - so können wir Ihr problem reproduzieren.
  • mydf ist nur eine zufällige dataframe, und foreach ist ein Paket und man sollte hinzufügen library(foreach) und library(doMC), registerDoMC()
InformationsquelleAutor ifreak | 2013-02-11
Schreibe einen Kommentar