ich ein data.frame
triviale mit dplyr
mit folgendem aggregieren kann:R: Aggregat von allen Faktorstufen (vorhanden und nicht vorhanden)
z <- data.frame(a = rnorm(20), b = rep(letters[1:4], each = 5))
library(dplyr)
z %>%
group_by(b) %>%
summarise(out = n())
Source: local data frame [4 x 2]
b out
(fctr) (int)
1 a 5
2 b 5
3 c 5
4 d 5
jedoch manchmal ein Datensatz einen Faktor fehlen. In diesem Fall hätte ich gerne die Ausgabe 0
.
Nehmen wir an, der typische Datensatz sollte 5 Gruppen haben.
z$b <- factor(z$b, levels = letters[1:5])
Aber klar gibt es nicht in diese besondere aber in eine andere sein könnte. Wie kann ich diese Daten so aggregieren, dass die length
für fehlende factors
0
ist.
gewünschte Ausgabe:
Source: local data frame [4 x 2]
b out
(fctr) (int)
1 a 5
2 b 5
3 c 5
4 d 5
5 e 0
Sie können 'tapply' wie diese' tapply (z $ b, z $ b, Länge) ' – Raad
Ich denke, das ist eine [offene Frage auf GitHub] (https://github.com/hadley/dplyr/issues/341). – JasonAizkalns