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!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage