我正在創建一個R程序包,我打算提交給具有調用C語言編寫的例程的函數的CRAN。如何加載編譯的C程序在平臺無關的方式在R功能?我能夠讓我的工作包在我的基於Intel的Mac有:dyn.load在R程序包中調用C函數的便攜式使用
function(mydata)
{
dyn.load(file.path(.Library,"mypkg/libs/i386",paste("mypkg", .Platform$dynlib.ext, sep="")))
try(
output <- .C("myfunc_cversion",
in_data = as.double(mydata),
res_data = as.double(res),
PACKAGE = "mypkg")
)
result <- as.matrix(output$res_data)
return(result)
}
的問題是調用dyn.load,我無法弄清楚如何指定的完整路徑的共享庫爲我安裝以便攜式方式包裝。
除了我應該使用的庫還有另外一個變量,還是在這種情況下比dyn.load有更好的功能?