2016-09-22 47 views
0

調用dpois_raw C統計程序我試圖找出一種方法來調用stats包的「dpois_raw」例程而不是使用.Call .External或任何方式的「dpois」包裝。如何從R

「dpois_raw」未在程序包環境(stats:::C_*)中列出,也沒有列出getDLLRegisteredRoutines("stats"),所以我很可能運氣不佳,但我想知道某個R/C專家是否知道解決方法。

回答

1

dpois_raw例程由Rmath.h頭提供,它看起來並沒有真正作爲stats包(或其他)的一部分公開;但是,它通過Rmath.h標題提供給C/C++代碼。

最簡單的暴露方法是用您自己的C/C++代碼暴露該代碼,例如(代碼存根)

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

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

此例程然後將被調用的自R與類似

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

見哈德利的r-pkgs部上在R封裝一些更多的信息使用編譯的代碼在包括C/C++代碼在R包中。

+0

是的,似乎黑客的包裝是唯一的方法...我跳躍的解決方案,將開箱即用,但它似乎是不可能的。謝謝。 –