R / dplyr: проблема группировки и мутации с функцией суммы - PullRequest
0 голосов
/ 07 августа 2020

Я работаю с набором данных о самолетах в определенных воздушных коридорах в разные годы, df выглядит примерно так:

ID   Airline  Corridor Year Index_A
1244 American C1       2010 0.03
1253 Delta    C12      2011 0.43
1643 Delta    C1       2010 0.05
1375 United   C1       2010 0.21
1621 American C5       2016 0.02

Переменная Index_A имеет диапазон от 0 до 1. Corridor находится в факторном формате.

Я пытаюсь вычислить сумму Index_A для каждых Year и Corridor. Index_A настроен таким образом, что для каждых Year и Corridor его сумма должна быть меньше 1.

Вот где у меня возникают проблемы с моим кодом. Это выглядит так:

df_final %>% group_by(Corridor, Year) %>%
                mutate(total = sum(Index_A)) %>% ungroup(Corridor, Year)

Проблема в том, что для некоторых лет total выходит за пределы диапазона, т.е.> 1. Я не уверен, что я делаю не так и как решить проблему.

Я неправильно смотрю на это? Буду признателен за любую помощь, и у меня нет предпочтений по пакету. Спасибо.

1 Ответ

0 голосов
/ 07 августа 2020

Думаю, вам нужно использовать summarise вместо mutate.

df_final %>% 
  group_by(Corridor, Year) %>%
  summarise(total = sum(Index_A)) %>% 
  ungroup
...