这篇文章主要为大家介绍了R包制作后出现not available for...错误的问题解决方式,有需要的朋友,可以借鉴参考下,希望能够有所帮助

有一段时间没有做过 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包出现错误问题解决的资料请关注编程学习网其它相关文章!