如何取所有id的平均数

时间:2017-02-15 11:28:20

标签: r dataframe dplyr

以下是名为data的数据框:

slot  id  time  number

  1     1     0     6
  1     1     1     8
  1     1     2     3
  1     1     3     6
  1     1     4     8
  1     1     5     3
....
  1     1     23    9
  1     2      0    6
  1     2      1    9
  1     2      2    3
  1     2      3    6
  1     2      4    9
  1     2      5    6
  1     2      6    9
  1     2      7    6
  1     2      8    3
....
  1     2      23   3

....


  2     1     0     8
  2     1     1     3
  2     1     2     8
  2     1     3     3

.....
  2     1     3     3
 .....


 30    80    23     3

同样,我有30个插槽,82个id和23个时间(0-23)。所以我想取每个id的平均值。 最初过滤一个id:

 slot  id  time  number

  1     1     0     6
  1     1     1     8
  1     1     2     3
  1     1     3     6
  1     1     4     8
  1     1     5     3
....
  1     1     23    9
  2     1     0     8
  2     1     1     3
  2     1     2     8
  2     1     3     3
.....
 30    1     23    3

所以我想取上述id的平均数,这意味着加上所有数字并除以720(24 * 30)。 average=sum(data$number)/720

因此,对于一个id,我可以轻松地执行此操作但是如何一次为所有id执行此操作并将其存储为数据框,如:

id     average
___    _______
 1       **
...
 80      **

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

df %>%
   group_by(id) %>%
   summarise(average = mean(number))