Ich hatte heute ein Problem, einen Weg zu finden, eine Aggregation in dplyr
in R zu machen, aber aus irgendeinem Grund konnte ich keine Lösung finden (obwohl ich denke, das sollte sei ganz einfach).Mehrere Aggregationen (kategorisch und numerisch) mit dplyr in einer Kette
Ich habe einen Datensatz wie folgt aus:
structure(list(date = structure(c(16431, 16431, 16431, 16432,
16432, 16432, 16433, 16433, 16433), class = "Date"), colour = structure(c(3L,
1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L), .Label = c("blue", "green",
"red"), class = "factor"), shape = structure(c(2L, 2L, 3L, 3L,
3L, 2L, 1L, 1L, 1L), .Label = c("circle", "square", "triangle"
), class = "factor"), value = c(100, 130, 100, 180, 125, 190,
120, 100, 140)), .Names = c("date", "colour", "shape", "value"
), row.names = c(NA, -9L), class = "data.frame")
die wie folgt zeigt:
date colour shape value
1 2014-12-27 red square 100
2 2014-12-27 blue square 130
3 2014-12-27 blue triangle 100
4 2014-12-28 green triangle 180
5 2014-12-28 green triangle 125
6 2014-12-28 red square 190
7 2014-12-29 red circle 120
8 2014-12-29 blue circle 100
9 2014-12-29 blue circle 140
Mein Ziel ist die häufigste Farbe, Form und den Mittelwert pro Tag zu berechnen. Meine erwartete Ausgabe ist die folgende:
date colour shape value
1 27/12/2014 blue square 110
2 28/12/2014 green triangle 165
3 29/12/2014 blue circle 120
ich es split
tun landete mit und schreibt meine eigene Funktion, die für ein noch data.frame
zu berechnen, verwenden dann snow::clusterApply
es parallel laufen zu lassen. Es war effizient genug (meine ursprüngliche Datenmenge ist etwa 10M Zeilen lang), aber ich frage mich, ob dies in eine Kette mit dplyr
passieren kann. Die Effizienz ist sehr wichtig, deshalb ist es sehr wichtig, sie in einer Kette zu betreiben.
Haben Sie versucht, mit 'group_by' und' summarize'? [Dieser Ansatz] (http://stackoverflow.com/questions/18433647/how-to-get-the-most-frequen-level-of-a-categorical-variable-in-r) könnte die allgemeinste Ebene erhalten. –