Как использовать DPLYR, чтобы получить по групповой сводке и количеству записей - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь использовать 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

Но это просто возвращает одну запись с суммой продаж по всем регионам и, похоже, игнорирует обработку по группам. Мысли

1 Ответ

0 голосов
/ 22 апреля 2020

Как упомянул @IceCreamToucan

analysis_df  %>%
  group_by(regions) %>%
  summarise(
    n = n(),
    sum.sales = sum(sales)
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...