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