如标题所示,我收到错误
Error: object 'Cdqrls' not found
我devtools
用于构建 R 包,在我当前的包中,我使用了一个函数
.Call(Cdqrls, x[, id1, drop=FALSE] * w, w * z, epsilon)
并且还包括lm.c
文件src
夹中的一个文件,其中包括:
...
SEXP Cdqrls(SEXP x, SEXP y, SEXP tol)
{
SEXP ans, ansnames;
SEXP qr, coefficients, residuals, effects, pivot, qraux;
int n, ny = 0, p, rank, nprotect = 4, pivoted = 0;
double rtol = asReal(tol), *work;
...
直接从R源文件复制。当我load_all()
在. devtools
_ 但是,从 wiki 中,我发现lm.o
MyPkgName.so
devtools
load_all ignores the package NAMESPACE
如果工作正常,我认为通过运行一些功能,我可以将文件更新NAMESPACE
为包含useDynLib(MyPkgName, Cdqrls)
. 那是对的吗?我认为这样错误可能会消失......任何建议都非常感谢!
更新
根据@mnel 和这篇文章,似乎 using@useDynLib
应该有效。但是,我使用的函数.Call()
没有记录,并且使用了几个函数,.Call
所以我个人不想记录它们,因为它们不用于最终用户。因此,我应该放在@useDynLib
哪里?