¿Hay alguna manera de que esto se pueda mejorar, o hacer de forma más simple?medio de cálculo de un grupo por factor
means.by<-function(data,INDEX){
b<-by(data,INDEX,function(d)apply(d,2,mean))
return(structure(
t(matrix(unlist(b),nrow=length(b[[1]]))),
dimnames=list(names(b),col.names=names(b[[1]]))
))
}
La idea es la misma que una declaración de SAS MEANS BY. La función 'means.by' toma un data.frame y una variable de indexación y calcula la media sobre las columnas del data.frame para cada conjunto de filas correspondientes a los valores únicos de INDEX y devuelve un nuevo marco de datos con la fila nombra los valores únicos de INDEX.
Estoy seguro de que debe haber una forma mejor de hacerlo en R, pero no se me ocurrió nada.
vi el ejemplo que usted envió en su sitio. plyr está diseñado exactamente para esta funcionalidad. Actualicé mi ejemplo para que coincida con el resultado en su sitio. –