Je viens de découvrir la fonction ave.. il s’agit d’une fonction extremement rapide qui permet de calculer une moyenne (ou autre chose..) par groupe. elle est trés efficace par rapport à des combinaisons de by et autres do.call



# mettons nous dans un cas ou nous voulons calculer le score moyenne des hommes d'une part , et des femme d'autre part
data<-data.frame(cbind(c(rep("homme",4),rep("femme",5)),c(1:4,3:7)))
names(data)<-c("genre","score")
data$score<-as.numeric(data$score)
data
attach(data)
cbind(data,ave(score,genre))

L’efficacité d’ave se retrouve surtout sur les tres gos jeux de données…