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包出現錯誤問題解決的資料請關註WalkonNet其它相關文章!

推薦閱讀: