在将函数应用于dplyr管道中的数据之前,我想从任何给定的当前观察值中减去一些选择。
例如,让我们根据实际观察值计算平均值a),然后从当前观察值减去0.10时计算平均值b)。该解决方案应适用于其他计算或函数。
比方说,我们在三个不同的日期(天)查看三种不同的冰块(ice_id =冰块标识符)的冰价。
da <- data.frame(ice_id = c(1,1,1,2,2,2,3,3,3), day = c(1,2,3,1,2,3,1,2,3), price = c(1.60,1.90,1.80,2.10,2.05,2.30,0.50,0.40,0.35))
da
ice_id day price
1 1 1 1.60
2 1 2 1.90
3 1 3 1.80
4 2 1 2.10
5 2 2 2.05
6 2 3 2.30
7 3 1 0.50
8 3 2 0.40
9 3 3 0.35
现在,我想添加两列:1)根据对三种冰块的真实观测,得出当天的平均冰块价格。2)如果仅将当前行中的冰价格降低0.10(从当前价格观察中减去0.1),则该天的平均冰价。
1)对我很清楚,但是我如何添加2)?
da = da %>% group_by(day) %>% mutate(mean_dayprice = mean(price), mean_dayprice_lower = ?)
例如,在第1行中,mean_dayprice_lower为:(((1.60-.10)+ 2.10 + .50)/ 3 = 1.36666
我想在给dplyr管道中的数据应用函数之前,从任何给定的当前观察值中减去一些选择。例如,让我们根据实际观察结果计算平均值a)...
不管输入,第二列将始终减少0.1 / n,其中n是组中的输入数。所以你可以做:
除非我不明白这很容易...
对于您的特定问题,您可以简单地计算mean(price - 0.1)
。