计算子组的平均值

我想通过计算每月每周总和的平均值来计算月份值。

例如对于6月(06)和距离10,我有一周总和1(2017_28),6(2017_29)和1(2017_31),我想对这几周进行汇总,以得出总月数8和平均值2.6667(8:3)。

我得到了月数,但是我不知道如何计算平均值

df %>% 
  group_by(year_month,distance) %>%
  mutate(monthsum = sum(weeksum))
   year year_month month year_week distance weeksum
1   2017    2017_05    05   2017_21       15       4
2   2017    2017_05    05   2017_21       10       1
3   2017    2017_05    05   2017_22        5       5
4   2017    2017_05    05   2017_22        0       1
5   2017    2017_06    06   2017_22        0      11
6   2017    2017_06    06   2017_23       20       7
7   2017    2017_06    06   2017_23        0       6
8   2017    2017_07    07   2017_28       10       1
9   2017    2017_07    07   2017_28        0       1
10  2017    2017_07    07   2017_29       10       6
11  2017    2017_07    07   2017_29        5       3
12  2017    2017_07    07   2017_30        0      12
13  2017    2017_07    07   2017_31       10       1
14  2017    2017_07    07   2017_31        0       7

这就是我想要的:

   year year_month month year_week distance monthsum    mean
1   2017    2017_05    05   2017_21       15       4      4
2   2017    2017_05    05   2017_21       10       1      1
3   2017    2017_05    05   2017_22        5       5      5
4   2017    2017_05    05   2017_22        0       1      1
5   2017    2017_06    06   2017_22        0      17    8.5
6   2017    2017_06    06   2017_23       20       7      7
7   2017    2017_07    07   2017_28       10       8 2.6667
8   2017    2017_07    07   2017_28        0      20 6.6667
9  2017    2017_07    07   2017_29        5       3      3


wxw398800941 回答:计算子组的平均值

首先,我希望您使用dplyr而不是plyr来保持最新。

还可以像这样通过mean()函数扩展语句:

df %>% 
   group_by(year_month,distance) %>% 
   mutate(monthsum = sum(weeksum),monthmean = mean(weeksum))

在您的情况下,也请使用summarize而不是mutate以获得更好的视图:

df %>% 
   group_by(year_month,distance) %>% 
   summarize(monthsum = sum(weeksum),monthmean = mean(weeksum))
本文链接:https://www.f2er.com/3167344.html

大家都在问