Ho riscontrato un problema con l'aggiunta di valori a un frame di dati utilizzando l'elaborazione parallela.aggiungi righe al dataframe utilizzando il pacchetto foreach
Ho una funzione che eseguirà alcuni calcoli e restituirà un dataframe, inclusi questi calcoli è un campionamento casuale.
così quello che ho fatto è:
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)
quando osservo il risultato di resdf
, è vuota
se sostituisco %dopar%
con %do%
il risultato viene calcolato correttamente, ma è troppo lento ..
c'è comunque per dare un po 'di spinta ??
ci ricorda da dove provengono 'foreach' e' dopar'. E anche il tuo 'mydf' - così possiamo riprodurre il tuo problema. – Spacedman
mydf è solo un dataframe casuale, e foreach è un pacchetto e dovresti aggiungere 'library (foreach)' e 'library (doMC)', 'registerDoMC()' – ifreak