Есть ли способ, которым это можно улучшить или сделать проще?
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]]))
))
}
Идея та же, что и в выражении SAS MEANS BY.Функция 'means.by' принимает data.frame и индексную переменную и вычисляет среднее значение по столбцам data.frame для каждого набора строк, соответствующих уникальным значениям INDEX, и возвращает новый фрейм данных со строкойназывает уникальные значения INDEX.
Я уверен, что должен быть лучший способ сделать это в R, но я ничего не мог придумать.