я могу объединить как data.frame
тривиальным с dplyr
со следующим:Р: совокупности всех уровней факторов (присутствующих и нет)
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
Тем не менее, иногда набор данных может отсутствовать фактор. В этом случае я хотел бы, чтобы выход был 0
.
Например, типичный набор данных должен иметь 5 групп.
z$b <- factor(z$b, levels = letters[1:5])
Но ясно, что их нет в этот конкретный, но может быть в другом. Как я могу объединить эти данные, так что length
для отсутствия factors
- 0
.
Желаемый результат:
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
Вы можете использовать 'tapply' как этот' tapply (г $ Ь, г $ Ь, длина) ' – Raad
Я думаю, что это [открытый вопрос на github] (https://github.com/hadley/dplyr/issues/341). – JasonAizkalns