目录
有一段时间没有做过 R 包了今天在尝试制作 R 包时,制作、生成、载入都没有遇到问题,但在载入 R 包内用 Rcpp
写得函数时出现了如下问题(做的包名叫 RI
,调用的函数也是 RI
):
Error in .Call("_RI_RI", PACKAGE = "RI", X, Y) : "_RI_RI" not available for .Call() for package "RI"
后在实验室小伙伴的帮助下成功解决。
解决方法
找到 NAMESPACE
文件,默认只有下述的语句:
exportPattern("^[[:alpha:]]+")
我们在其下方添加如下语句(再次提醒,做的包名叫 RI
,大家替换成自己相应的包名即可):
useDynLib(RI, .registration = TRUE)
之后再次制作、生成、载入与调用函数,发现报错信息发生了变化:
Error in RI(matrix(1:6, 3), matrix(1:6, 2)) : function 'enterRNGScope' not provided by package 'Rcpp'
这时我们再尝试在 NAMESPACE
文件添加如下语句即可:
import(Rcpp)
最终成功解决!
NAMESPACE 文件最终形态
exportPattern("^[[:alpha:]]+") import(Rcpp) useDynLib(RI, .registration = TRUE)
以上就是R包制作后出现not available for错误问题解决解决的详细内容,更多关于制作R包出现错误问题解决的资料请关注其它相关文章!