0
diamonds %>% 
  group_by(cut) %>% 
  summarise(TotalPrice = sum(price))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 2
  cut       TotalPrice
  <ord>          <int>
1 Fair         7017600
2 Good        19275009
3 Very Good   48107623
4 Premium     63221498
5 Ideal       74513487

I would like these totals back on diamonds for each row.

diamonds %>% head
# A tibble: 6 x 10
  carat cut       color clarity depth table price     x     y     z
  <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23  Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
2 0.21  Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
3 0.23  Good      E     VS1      56.9    65   327  4.05  4.07  2.31
4 0.290 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
5 0.31  Good      J     SI2      63.3    58   335  4.34  4.35  2.75
6 0.24  Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48

I would like to somehow mutate a new field, 'TotalPrice' so that e.g. each time a row has Ideal is cut, TotalPrice would be 74513487.

How can I get the grouped sums back down to the individual row level?

Doug Fir
  • 19,971
  • 47
  • 169
  • 299

0 Answers0