Zuweisung eines Wertes aus einer foreach-Schleife
Ich würde gerne eine Schleife parallelisieren
td <- data.frame(cbind(c(rep(1,4),2,rep(1,5)),rep(1:10,2)))
names(td) <- c("val","id")
res <- rep(NA,NROW(td))
for(i in levels(interaction(td$id))){
res[td$id==i] <- mean(td$val[td$id!=i])
}
mit der Hilfe vonfür jeden() desBibliothek (doParallel) um die Berechnungen zu beschleunigen. Leider scheint foreach zumindest direkte Aufträge nicht zu unterstützen
registerDoParallel(4)
res <- rep(NA,NROW(td))
foreach(i=levels(interaction(td$id))) %dopar%{
res[td$id==i] <- mean(td$val[td$id!=i])}
macht nicht was ich will (gib das selbe Ergebnis wie die normale Schleife oben). Irgendwelche Ideen, was ich falsch mache oder wie ich das irgendwie "hacken" könnte.kombinieren Option in Foreach, um zu tun, was ich will? Bitte beachten Sie, dass die Reihenfolge der ID-Variablen im ursprünglichen Datensatz nicht immer gleich ist. Jeder Hinweis wäre sehr dankbar!