R包制作后出现not available for错误问题解决解决

时间:2022-06-01 12:38:23

有一段时间没有做过 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