在R中如何计算增加序列数/顺序的方法

时间:2017-02-07 10:06:17

标签: r

假设我有一个类似下面的数据框:

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]))
}

有人可以帮忙吗?感谢。

2 个答案:

答案 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