2016-09-22 3 views
0

.Call .External 또는 다른 어떤 수단을 사용하여 "dpois"래퍼가 아닌 stats 패키지의 "dpois_raw"루틴을 호출하는 방법을 알아 내려고합니다.dpois_raw C stats 루틴 호출 방법 R

"dpois_raw"는 패키지 환경 (stats:::C_*)에 포함되어 있지 않으며 getDLLRegisteredRoutines("stats") 일 때도 운이 좋지 않을 수 있습니다.하지만 누군가 R/C 전문가가 해결 방법을 알고 있는지 궁금합니다.

답변

1

dpois_raw 루틴은 Rmath.h 헤더에 의해 제공되며 실제로 stats 패키지 (또는 기타)의 일부로 노출되지 않습니다. 그러나 Rmath.h 헤더를 통해 C/C++ 코드에서 사용할 수 있습니다.

노출하는 가장 간단한 방법은 해당 코드를 노출하는 C/C++ 코드를 사용하는 것입니다. 이 루틴은 다음 C/C++ 코드를 포함한 일부 자세한 내용은 R 패키지로 컴파일 된 코드를 사용하여

.Call("my_dpois_raw", <...>) 

참조 해들리의 r-pkgs 섹션 같은과 R에서 호출 될

#include <R.h> 
#include <Rmath.h> 

SEXP my_dpois_raw(<...>) { 
    double result = dpois_raw(<...>); 
    return result; 
} 

(코드 스텁) R 패키지.

+0

그래, 래퍼를 해킹하는 것이 유일한 방법 인 것 같습니다. 상자에서 해결할 수있는 솔루션을 찾고 있었지만 오히려 불가능한 것 같습니다. 고맙습니다. –