Я хочу отфильтровать n самых больших групп по количеству, а затем выполнить некоторые вычисления на отфильтрованном фрейме данных
Вот некоторые данные
Brand <- c("A","B","C","A","A","B","A","A","B","C")
Category <- c(1,2,1,1,2,1,2,1,2,1)
Clicks <- c(10,11,12,13,14,15,14,13,12,11)
df <- data.frame(Brand,Category,Clicks)
|Brand | Category| Clicks|
|:-----|--------:|------:|
|A | 1| 10|
|B | 2| 11|
|C | 1| 12|
|A | 1| 13|
|A | 2| 14|
|B | 1| 15|
|A | 2| 14|
|A | 1| 13|
|B | 2| 12|
|C | 1| 11|
Это мой ожидаемый результат.Я хочу отфильтровать два крупнейших бренда по количеству, а затем найти средние клики в каждой комбинации бренда / категории
|Brand | Category| mean_clicks|
|:-----|--------:|-----------:|
|A | 1| 12.0|
|A | 2| 14.0|
|B | 1| 15.0|
|B | 2| 11.5|
Что, я думал, может быть достигнуто с помощью кода, подобного этому (но не может)
df %>%
group_by(Brand, Category) %>%
top_n(2, Brand) %>% # Largest 2 brands by count
summarise(mean_clicks = mean(Clicks))
РЕДАКТИРОВАТЬ: идеальный ответ должен быть в состоянии использоваться для таблиц базы данных, а также локальных таблиц