我想知道如何计算某些数字的累积平均值。我将举一个简单的例子来描述我在寻找什么。
我有以下号码
vec <- c(1, 2, 3, 4, 5)
如果我计算这些数字的平均值,我会得到 3。
现在,如何做这些数字的累积平均值。
最佳答案
类似于列表的累积总和,我建议:
向量 x 的累积平均 avg 将包含从第一个位置到位置 i 的平均值。
一种方法是通过对所有先前值求和并除以它们的数量来计算每个位置的平均值。
通过重写arithmetic mean的定义作为递归公式。一个得到
avg(1) = x(1)
和
avg(i) = (i-1)/i*avg(i-1) + x(i)/i; (i > 1)
为您的向量(或列表、一维数组或您如何称呼它)的每个元素评估此表达式,您将获得累积平均值。
如果您必须计算非常大或非常多的整数的平均值,并且如果您必须存储它们的累积总和会遇到溢出,则这种递归方法会派上用场。
示例
在你的例子中
1, 2, 3, 4, 5
我们得到
1, 1.5, 2, 2.5, 3
关于r - 计算累积平均值(平均值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074665/