Мне нужно узнать общее количество моделей, которые были проданы только один раз за месяц.
Пример DF:
> df <- data.frame(sale_date = c('2019-01-02','2019-01-06','2019-01-20','2019-01-24','2019-02-
01','2019-02-11','2019-02-21','2019-03-13','2019-03-10','2019-03-19'),
+ model = c('A4','Vxi','Vxi','A6','Xing','Xing','Lxi','Lxi','Zxi','Zxi'))
> df
sale_date model
1 2019-01-02 A4
2 2019-01-06 Vxi
3 2019-01-20 Vxi
4 2019-01-24 A6
5 2019-02-01 Xing
6 2019-02-11 Xing
7 2019-02-21 Lxi
8 2019-03-13 Lxi
9 2019-03-10 Zxi
10 2019-03-19 Zxi
Мой результат должен быть: 4, потому что в январе и «A4», и «A6» продавались только один раз, так что это 2 для января, затем в феврале «Lxi» был продан только один раз, поэтому 3 за январь и февраль, а в марте также «Lxi» был продан только один раз, поэтому общее количество моделей, которые продавались только раз в месяц, составляет 4.
, пробовал с кодом ниже, но кажется длинным:
> step1 <- df %>% group_by(month(sale_date, label = 1),model) %>% summarise(count = n())
> step1
# A tibble: 7 x 3
# Groups: month(sale_date, label = 1) [3]
`month(sale_date, label = 1)` model count
<ord> <fct> <int>
1 Jan A4 1
2 Jan A6 1
3 Jan Vxi 2
4 Feb Lxi 1
5 Feb Xing 2
6 Mar Lxi 1
7 Mar Zxi 2
> sum(step1$count == 1)
[1] 4
>
Может кто-нибудь сообщить мне, если есть более простой код для получения результата