我正在尝试扩展一个完全用C语言编写的R包。我有以下问题:在C代码中我想调用R用户定义的函数作为优化例程。然而,当我尝试追踪优化中的主要步骤时,我(或多或少)能够遵循C源代码中的步骤,但是一旦我尝试理解如何从R调用optim(通过.External2)我甚至无法弄清楚通过.External2传递给optim的参数之间的联系是什么。具体而言,在src/library/stats/src/optim.c
我们有以下
SEXP optim(SEXP call, SEXP op, SEXP args, SEXP rho)
并且在src/library/stats/R/optim.R
中我们有(我想的是)以这种方式调用optim
.External2(C_optim, par, fn1, gr1, method, con, lower, upper)
如何通过.External2?
将参数调用,op,args和rho传递给optim几年前,我读到了一个函数R_call或类似的函数来将R函数调用到C.我记得即使在那个时候这个函数也被弃用了,但它只是为了弄清楚我需要的东西。