分组后获得更多变量,并使用select(dplyr)进行汇总

时间:2019-03-29 16:39:35

标签: r select group-by dplyr summarize

我的数据框:

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 :(得分:0)

按照顺序:选择-> group_by->摘要

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

答案 1 :(得分:0)

人们正确地建议group_by日期和工作日,但是如果您有很多专栏,写出来可能会很痛苦。这是我经常用于具有大量列的data.frames的另一种习惯用法:

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

这将保留每个列变量的所有第一个实例,而不必显式地将它们全部写出。