У меня есть следующий фрейм данных:
D <- data.frame("Id" = c("a","b","c","d","e","f","g"), "Group" = c("1","1","1","2","2","2","2"),"Time" = c("1","1","2","1","2","3","3"))
Id Group Time
1 a 1 1
2 b 1 1
3 c 1 2
4 d 2 1
5 e 2 2
6 f 2 3
7 g 2 3
Я хочу посчитать количество людей по периоду и времени, сохраняя структуру цилиндра. Классический способ сделать это использует dplyr
D %>% group_by(Group,Time) %>% tally()
Group Time n
<fct> <fct> <int>
1 1 1 2
2 1 2 1
3 2 1 1
4 2 2 1
5 2 3 2
, но структура не сбалансирована: время 3 здесь не отображается для группы 1, но я бы хотел, чтобы оно ассоциировалось с 0, например так:
Group Time n
<fct> <fct> <int>
1 1 1 2
2 1 2 1
3 1 3 0
4 2 1 1
5 2 2 1
6 2 3 2
Есть ли способ сбалансировать результаты после group_by? Кто-нибудь сталкивался с чем-то подобным? Заранее спасибо