我很想知道 R 的平均函数使用什么算法。该算法的数值属性是否有一些参考?
我在 summary.c:do_summary() 中找到了以下 C 代码:
case REALSXP:
PROTECT(ans = allocVector(REALSXP, 1));
for (i = 0; i < n; i++) s += REAL(x)[i];
s /= n;
if(R_FINITE((double)s)) {
for (i = 0; i < n; i++) t += (REAL(x)[i] - s);
s += t/n;
}
REAL(ans)[0] = s;
break;
这似乎是直截了当的意思:
for (i = 0; i < n; i++) s += REAL(x)[i];
s /= n;
然后它添加了我假设的数字校正,这似乎是与数据平均值的平均差异:
for (i = 0; i < n; i++) t += (REAL(x)[i] - s);
s += t/n;
我无法在任何地方追踪这个算法(平均值不是一个很好的搜索词)。
任何帮助将非常感激。