I can achieve this task, but I feel like there must be a \"best\" (slickest, most compact, clearest-code, fastest?) way of doing it and have not figured it out so far ...
And here is a solution using Hadley Wickham's new dplyr library.
dplyr
library(dplyr) d %>% group_by(f1, f2, f3) %>% summarise(y.mean = mean(y), z.mean = mean(z))