Mam problem z dołączaniem wartości do ramki danych przy użyciu przetwarzania równoległego.dołączanie wierszy do ramki danych za pomocą pakietu foreach
Mam funkcję, która wykona pewne obliczenia i zwróci ramkę danych, w tym obliczenia te są losowymi próbkami.
więc co zrobiłem to:
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)
kiedy zobaczyć wynik resdf
, to pusty
jeśli mogę zastąpić %dopar%
z %do%
wynik jest obliczany poprawnie, ale to jest zbyt powolny ..
czy jest jakiś sposób, aby to nieco poprawić?
przypomnij nam, skąd pochodzą "foreach" i "dopar". I twój 'mydf' też - abyśmy mogli odtworzyć twój problem. – Spacedman
mydf jest po prostu losową ramką danych, a foreach jest pakietem i powinieneś dodać 'library (foreach)' i 'library (doMC)', 'registerDoMC()' – ifreak