【发布时间】:2018-07-19 18:54:07
【问题描述】:
我有一个包含 4 列的数据集,如下所示。我想创建一个第 5 列(平均值),它具有基于前 3 列的第 4 列的平均值。
例如:Id (5000) 在日期 (1/1/2018) 的第一个小时 (hour=1) 的值的平均值是前 3 行 (2+2+1) 的平均值/3 = 1.67
>
head(read_df[,1:5])
`
Id Date Hour Value Mean
5000 1/1/2018 1 1 1.67
5000 1/1/2018 1 2 1.67
5000 1/1/2018 1 2 1.67
5100 1/1/2018 4 2 2
5100 2/1/2018 6 2 3
5100 2/1/2018 6 4 3
5100 3/1/2018 2 7 7
5200 3/1/2018 3 3 4.5
5200 3/1/2018 3 6 4.5
我尝试为每个 Id 和 Date 和 Hour 使用 for 循环。但最终在某些行中出现了 NA。请让我知道实现这一目标的有效方法。
【问题讨论】: