1

I know this question has answers in multiple places, but I am unable to figure out where I am going wrong. Suppose I want to find the sum of hp for each group in cyl:

mtcars%>%
  group_by(cyl) %>% 
  mutate(
    sum_hp = sum(hp)
  )

sum_hp is giving me 4694 for every value. I want the sum for each value of cyl.

user6883405
  • 393
  • 3
  • 14

1 Answers1

4

It could be a case of plyr::mutate masking dplyr::mutate when both the packages are loaded. We can specify dplyr::<functionname> to correct this

library(dplyr)
mtcars%>%
  group_by(cyl) %>% 
  dplyr::mutate(sum_hp = sum(hp))
# A tibble: 32 x 12
# Groups:   cyl [3]
#     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb sum_hp
#   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
# 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4    856
# 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4    856
# 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1    909
# 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1    856
# 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2   2929
# 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1    856
# 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4   2929
# 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2    909
# 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2    909
#10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4    856
# … with 22 more rows

If we use plyr::mutate, the OP's output can be reproduced

mtcars%>%
   group_by(cyl) %>%   
   plyr::mutate(
   sum_hp = sum(hp)
   )
# A tibble: 32 x 12
# Groups:   cyl [3]
#     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb sum_hp
#   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
# 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4   4694
# 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4   4694
# 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1   4694
# 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1   4694
# 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2   4694
# 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1   4694
# 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4   4694
# 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2   4694
# 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2   4694
#10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4   4694
# … with 22 more rows
akrun
  • 874,273
  • 37
  • 540
  • 662