Seite 1 von 1

Aggregate Fehler Argumente müssen dieselbe Länge haben

Verfasst: Di Mär 13, 2018 2:47 pm
von swas
Hallo,

so noch mal eine Frage zur aggregate Funktion. Irgendwie bin ich da manchmal etwas zu blöd.

Zunächst mal eine Frage etwas Off-Topic: Ist es mit aggregate möglich eine Art "count" zu machen? Momentan benutze ich das plyr package und dort die Funktion count, dennoch würde es mich interessieren , ob es mit aggregate möglich ist.

So nun zu meinem Problem:

Ich hab mir mit der count Funktion den folgenden Dataframe erzeugt:

Code: Alles auswählen

'data.frame':	1299 obs. of  3 variables:
 $ cluster_tmp: Factor w/ 799 levels "-1_1",..: 1 1 1 2 3 4 5 6 7 7 ...
 $ Type       : Factor w/ 5 levels "A",..: 2 3 5 2 2 2 2 2 1 2 ...
 $ freq       : int  1 1 1 1 1 1 1 1 1 1 ...
Nun würde ich gerne die Werte aggregieren mit dem Formula Interface ist es kein Problem:

Code: Alles auswählen

aggregate(freq ~ Type, data=coord, mean)
Wenn ich das auf die folgende Art und Weise mache:

Code: Alles auswählen

aggregate(coord$freq, by=list('Type'), mean)
Dann bekomme ich den Fehler:

Code: Alles auswählen

Error in aggregate.data.frame(as.data.frame(x), ...) : 
  Argumente müssen dieselbe Länge haben
Ich verstehe leider nicht wieso das passiert. Würde mich sehr über eine Erklärung freuen.

Gruß,
swas

Re: Aggregate Fehler Argumente müssen dieselbe Länge haben

Verfasst: Di Mär 13, 2018 2:53 pm
von jogo
Hallo swas,

Code: Alles auswählen

aggregate(coord$freq, by=list(coord$Type), FUN=mean)
bei by= müssen die Vektoren in der Liste die gleiche Länge haben wie der auszuwertende Vektor. Die Angabe des Namens der Spalte reicht nicht.

Gruß, Jörg
p.s.:
Hier gab es eine entsprechende Diskussion:
https://stackoverflow.com/questions/492 ... -aggregate