有一段時間沒有做過 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