Gibt es eine Möglichkeit, dass dies verbessert werden kann, oder einfacher?berechnen Sie mit einer Gruppe von Faktor
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]]))
))
}
Die Idee ist die gleiche wie eine SAS MEANS BY-Anweisung. Die Funktion 'means.by' verwendet einen data.frame und eine Indexvariable und berechnet den Mittelwert über die Spalten des dat.frames für jeden Zeilensatz, der den eindeutigen Werten von INDEX entspricht, und gibt einen neuen Datenrahmen mit der Zeile zurück Benennt die eindeutigen Werte von INDEX.
Ich bin mir sicher, dass es einen besseren Weg geben muss, dies in R zu tun, aber mir fällt nichts ein.
sah ich das Beispiel, das Sie auf Ihrer Website veröffentlicht. plyr ist genau auf diese Funktionalität ausgelegt. Ich habe mein Beispiel aktualisiert, damit es mit der Ausgabe auf Ihrer Website übereinstimmt. –