Przypisanie wartości z pętli foreach

Chciałbym zrównoważyć pętlę

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])
}  

z pomocądla każdego() zbiblioteka (doParallel) w celu przyspieszenia obliczeń. Niestety foreach nie wydaje się wspierać przynajmniej bezpośrednich zadań

registerDoParallel(4)
res <- rep(NA,NROW(td))
foreach(i=levels(interaction(td$id))) %dopar%{
res[td$id==i] <- mean(td$val[td$id!=i])}

nie robi tego, co chcę (daj ten sam wynik, co normalna pętla powyżej). Jakieś pomysły co robię źle lub jak mogłem jakoś „zhakować”.połączyć opcja w foreach, aby zrobić to, co chcę? Należy pamiętać, że kolejność zmiennej id nie zawsze jest taka sama w oryginalnym zestawie danych. Każda podpowiedź byłaby bardzo ceniona!

questionAnswers(2)

yourAnswerToTheQuestion