У меня есть следующий набор данных ( Это будет называться ПЕРВЫЙ набор данных активности ):
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. группировки.
Пожалуйста, дайте мне знать, если это неясно. Спасибо.