Получить больше переменных после группировки, суммируя с помощью select (dplyr) - PullRequest
0 голосов
/ 29 марта 2019

Мой фрейм данных:

date  | weekday | price
2018  | 1       | 25
2018  | 1       | 35
2019  | 2       | 40

Я пытаюсь запустить этот код в dplyr:

pi %>% 
  group_by(date) %>% 
  group_by(date) %>%
  summarise(price = sum(price, na.rm = T)) %>%
  select(price, date, weekday) %>%
  print()

Не работает.

Есть решение?Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Люди правильно предлагают group_by дату и день недели, но если у вас много столбцов, это может быть неудобно для записи.Вот еще одна идиома, которую я часто использую для data.frames с большим количеством столбцов:

pi %>% 
  group_by(date) %>%
  mutate(price = sum(price, na.rm = T)) %>%
  filter(row_number() == 1)

Это сохранит все первые экземпляры переменных каждого столбца без необходимости явно записывать их все.

0 голосов
/ 29 марта 2019

Следуйте порядку: выберите -> group_by -> суммировать

df%>%select(price, date, weekday)%>%
    group_by(date, weekday)%>%summarise(sum(price,na.rm=T))
...