如何从 R 调用 dpois_raw C 统计例程

How to call dpois_raw C stats routine from R

我正在尝试找出一种方法来调用 stats 包的 "dpois_raw" 例程,而不是使用 .Call .External 或其他方式调用 "dpois" 包装器。

"dpois_raw" 没有在包环境 (stats:::C_*) 中列出,也没有在我这样做时 getDLLRegisteredRoutines("stats") 所以我可能运气不好,但我想知道是否有人 R/C 专家知道解决方法。

dpois_raw 例程由 Rmath.h header 提供,它似乎并没有作为 stats 包的一部分公开(或以其他方式公开) );但是,它通过 Rmath.h header.

可用于 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 包中使用编译代码的更多信息,请参阅 Hadley 的 r-pkgs 部分。