Я пытаюсь использовать DPLYR для создания фрейма данных с тремя переменными: РЕГИОН, общее количество ПРОДАЖ в регионе, общее количество ЗАПИСЕЙ продаж в регионе. Я могу использовать 2 прохода через DPLYR и объединение, чтобы получить именно то, что я хочу. Но должен быть способ использовать один проход через DPLYR, чтобы получить то, к чему я стремлюсь.
Произвольно генерировать df с продажами в каждом из 10 регионов
library(dplyr)
set.seed(2222)
sales <- sample.int(100, 1000, replace = TRUE)
regions <- sample.int(10, 1000, replace = TRUE)
analysis_df <- data.frame(sales, regions)
Цель: Хотите, чтобы построить df с одним сценарием DPLYR, который имеет следующую структуру
Region rows/records sum(sales)
1 96 4997
2 97 4932
3 105 5084
...
10 106 5080
Я могу получить то, что хочу, с двумя наборами сценариев DPLYR и слиянием
region_n <- analysis_df %>%
group_by(regions) %>%
summarise(n = n() )
region_n
sales_sum <- analysis_df %>%
group_by(regions) %>%
summarise(sum.sales = sum(sales))
sales_sum
sales_fin <- merge(region_n, sales_sum, by=c("regions"))
sales_fin
Но это похоже на это должно быть ненужным. Должен быть способ сделать один проход с DPLYR, чтобы получить то, что я хочу. Более или менее как ....
sales_fin2 <- analysis_df %>%
group_by(regions) %>%
summarise(n = n() ) %>%
summarise(sum.sales = sum(sales))
sales_fin2
Но это просто возвращает одну запись с суммой продаж по всем регионам и, похоже, игнорирует обработку по группам. Мысли