ti1<-proc.time() t6<-data.frame(letter=unique(mydf$a),mean=rep(0,26)) for (i in t6$letter ){ t6[t6$letter==i,2]=mean(mydf[mydf$a==i,2]) } eltime<-proc.time()-ti1 eltime