You can try one of the following approaches to calculating the mean by the group in R.
1. You can use the function tapply() to apply the mean.
a<- c('a', 'b', 'c', 'b', 'b', 'a', 'c', 'a', 'a', 'b', 'c')
b<- c(11,12,13,1,34,15,34,54,21,51,87)
v1 <- tapply(b, a, mean)
2. You can use the function aggregate() to apply the mean.
a<- c('a', 'b', 'c', 'b', 'b', 'a', 'c', 'a', 'a', 'b', 'c')
b<- c(11,12,13,1,34,15,34,54,21,51,87)
v2 <- aggregate(b, by=list(a), FUN = mean)
The above codes will give the following outputs:
> v1
a b c
25.25000 24.50000 44.66667
> v2
Group.1 x
1 a 25.25000
2 b 24.50000
3 c 44.66667