Посмотрите на aggregate
.Я думаю, это то, что вы хотите.
d <- data.frame(block=c(1,1,1,1,1,1,2,2,2,2), plot=c(1,1,2,2,3,3,1,1,2,2), date=c(rep('aug',5),rep('sep',5)),
data=c(11.95171507, 18.41451063, 9.506155236, 13.26259947, 17.53616835, 15.40950767, 23.03616678,
17.07067258, 11.58278798, 13.15443304))
aggregate(x = d$data, by = list(d$block, d$date), FUN = "mean")