Применение 5 лучших критериев, созданных в одном наборе данных, к операциям в аналогичном наборе данных - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующий набор данных ( Это будет называться ПЕРВЫЙ набор данных активности ):

obs District    ZoneID  Period  SUM_activity
1   Northwestern    Northern: 53A   2019-02-06 - 2019-03-06 4
2   Northwestern    Northern: 53B   2019-02-06 - 2019-03-06 0
3   Northwestern    Northwestern: 61A   2019-02-06 - 2019-03-06 88
4   Northwestern    Northwestern: 61B   2019-02-06 - 2019-03-06 44
5   Northwestern    Northwestern: 61D   2019-02-06 - 2019-03-06 212
6   Northwestern    Northwestern: 62A   2019-02-06 - 2019-03-06 38
7   Northwestern    Northwestern: 62B   2019-02-06 - 2019-03-06 18
8   Northwestern    Northwestern: 62C   2019-02-06 - 2019-03-06 65
9   Northwestern    Northwestern: 62D   2019-02-06 - 2019-03-06 4
10  Northwestern    Northwestern: 63A   2019-02-06 - 2019-03-06 107
11  Northwestern    Northwestern: 63B   2019-02-06 - 2019-03-06 19
12  Northwestern    Northwestern: 63C   2019-02-06 - 2019-03-06 56
13  Northwestern    Northwestern: 63D   2019-02-06 - 2019-03-06 165
14  Northwestern    Northwestern: DATA  2019-02-06 - 2019-03-06 28
15  Northwestern    Northwestern: DATB  2019-02-06 - 2019-03-06 26
16  Northwestern    Northwestern: DATC  2019-02-06 - 2019-03-06 114
17  Northwestern    Outside Zones 2019-02-06 - 2019-03-06   1501
18  Southern    Outside Zones 2019-02-06 - 2019-03-06   2062
19  Southwestern Outside Zones  2019-02-06 - 2019-03-06 1351

С помощью от сообщества я смог отнесите их к следующему коду:

library(dplyr)
library(tidyr)

data %>%
  mutate(Zone=ifelse(ZoneID=="Outside Zones", 1, 0)) %>%
  group_by(District, Period, Zone) %>%
  mutate(grp=factor(+(min_rank(desc(SUM_activity))<=5) + Zone,
    labels=c("Top 5", "Rest of Zones", "Outside Zones"),
    levels=c(1,0,2))) %>%
  group_by(District, Period, grp) %>%
  summarise(n=sum(SUM_activity)) %>%
  pivot_wider(names_from=grp, values_from=n, values_fill=list(n=0))

В результате (Это будет называться ФИНАЛЬНАЯ СФЕРА ДАННЫХ о деятельности ):

  District     Period                  `Top 5` `Rest of Zones` `Outside Zones`
  <chr>        <chr>                     <int>           <int>           <int>
1 Northwestern 2019-02-06 - 2019-03-06     686             302            1501
2 Southern     2019-02-06 - 2019-03-06       0               0            2062
3 Southwestern 2019-02-06 - 2019-03-06       0               0            1351

Теперь, если я имел новый набор данных events , который был настроен ТОЧНО, как набор данных First Activity, но имел различное число (потому что он представляет ряд событий). Как я могу вывести тот же набор данных, что и набор данных Final Activity (например, Final EVENT набор данных), но с критерием, определенным при создании набора данных Final Activity?

В принципе, если Лучшие 5 зон в наборе данных Final ACTIVITY состоят из определенных c ZoneID. Я хочу, чтобы те же идентификаторы ZoneID использовались для категорий «5 лучших», «Остальные зоны» и «Внешние зоны» в наборе данных окончательных событий, вместо того, чтобы использовать их собственные итоговые значения для получения первых 5, et c. группировки.

Пожалуйста, дайте мне знать, если это неясно. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...