вычислить средние значения группы по фактору

Есть ли способ, которым это можно улучшить или сделать проще?

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, но я ничего не мог придумать.

9
задан Andrew Redd 4 October 2010 в 19:33
поделиться