2010-12-09 4 views

Répondre

3

Utilisez ave ou aggregate, en fonction de la manière dont vous souhaitez obtenir la sortie.

A matrix sera plus rapide qu'un data.frame, mais vous ne pouvez utiliser un matrix si x et y sont du même type.

set.seed(21) 
x <- cbind(rnorm(20), sample(1:2,20,TRUE)) 
ave(x[,1], x[,2]) 
aggregate(x[,1], by=list(x[,2]), FUN=mean) 
+0

merci, dans mon cas: ave (données [, 'Y'], les données [, 'X'], FUN = moyenne) est en train de faire le tour, qui est des colonnes en fonction sont en ordre inverse ils seraient probablement dans les tableaux – rsk82

+0

pour avoir de très mauvaises performances sur les gros volumes de données. – andi

Questions connexes