假设我有一个类似下面的数据框:
mydataframe <- data.frame(x=1:10, y=c(2,4,6,8,11,14,17,19,22,29))
plot(mydataframe$y, type = "l", lwd="3", col="red")
我要做的是计算平均值,例如y [1] = 2,y [1,2] = 3的平均值等等......
y Avg basically
2 2 2/1
4 3 (2+4)/2
6 4 (2+4+6)/3
8 5 (2+4+6+8)/4
11 6 (2+4+6+8+11)/5
14 8 so forth
17 9
19 10
22 11
29 13
我正在尝试使用for循环,但我知道我错了,不会得到理想的结果......
for (i in 1:length(mydataframe$x)) {
print (mean(mydataframe$y[i]))
}
有人可以帮忙吗?感谢。
答案 0 :(得分:3)
我们可以使用cummean
dplyr
library(dplyr)
mydataframe$basically <- cummean(mydataframe$y)
答案 1 :(得分:2)
您只需使用cumsum
除以x
,
cumsum(mydataframe$y)/mydataframe$x
#[1] 2.000000 3.000000 4.000000 5.000000 6.200000 7.500000 8.857143 10.125000 11.444444 13.200000