알고리즘 R의 평균 함수가 어떤 알고리즘을 사용하는지 알고 싶습니다. 이 알고리즘의 수치 속성에 대한 참고가 있습니까? 그것은 내가이 가정 무엇을 추가 그리고R은 평균을 계산하기 위해 어떤 알고리즘을 사용합니까?
for (i = 0; i < n; i++) s += REAL(x)[i];
s /= n;
: do_summary() : 똑바로 평균을 보인다
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;
나는 다음과 같은 C의 summary.c 코드 발견 데이터의 평균과의 평균 차이 인 것으로 보이는 수치 수정 :
for (i = 0; i < n; i++) t += (REAL(x)[i] - s);
s += t/n;
나는 추적 할 수 없었습니다. s 알고리즘은 어디서나 내려 질 수 있습니다 (평균은 훌륭한 검색 용어가 아닙니다).
도움을 주시면 감사하겠습니다.
이것은 제쳐두지만, 'mean.R'은 'summary.c'를 어떻게 호출합니까? 나는 '내부 (mean (x))'가 'summary.c'를 호출하는 방법을 이해하지 못한다. 두 파일이 어떻게 연결되어 있는지 주셔서 감사합니다. 죄송합니다. 질문에서 너무 멀어지면 죄송합니다. 나는 다만 배우기를 희망하고있다. –
@MarkMiller : 모든'.Internal' 호출은'src/main/names.c'에 매핑됩니다. 이 파일에서 "mean"을 검색하면 C 함수가 무엇을 호출하는지 볼 수 있습니다. 그런 다음 해당 C 함수에 대한 소스 파일을 검색 할 수 있습니다. [이 질문] (http://stackoverflow.com/q/13279256/271616)을 참조하십시오. –
r-devel에서 이와 동일한 질문에 대한 링크 : https://stat.ethz.ch/pipermail/r-devel/2013-July/067053.html –