我正在将我编写的一些 R 代码组织到一个包中。此代码包含用于推断常微分方程模型中参数的 MCMC 算法,因此我将求解 ODE 数千次。因此,有必要使用编译代码而不是 R 函数将模型传递到包的函数ode
中。deSolve
通常,我使用命令
system('R CMD SHLIB mymodel.c')
dyn.load(mymodel)
使用已编译的版本。相反,我希望 R 在安装包时自动生成 .so 文件。我找不到这样做的方法,因为这些 C 函数不能用作 R 函数。我只需要将有效 DLL 的路径传递给ode
函数。为 ODE 模型做一个包装器似乎没有意义,因为我不能在 R 中使用该函数,但也许我很困惑。我在 CRAN 上找不到以这种方式使用 C 代码的包,所以也许不可能。