如何从R包导入C函数到我的使用?

时间:2018-04-06 20:10:08

标签: c r r-package

我正在构建一个使用位于src其他包(npcp包)中的C函数的包。该函数位于文件夹:utilities.c内,还有一个utilities.h文件。 (CRAN link of npcp

在构建函数时(不在我的包中),我可以使用:

调用C函数
myfunc <- function (x) {

      # Some code

  library(npcp)
  pdfsumunif <- function(x,n) {
    nx <- length(x)

    .C("pdf_sum_unif",
       as.integer(n),
       as.double(x),
       as.integer(nx),
       pdf = double(nx),
       PACKAGE = "npcp")$pdf
  }

 # More code

}

一切正常。当我尝试使用我的函数创建包时会发生问题。由于我必须使用DESCRIPTION导入Imports: npcp文件中的库,因此在尝试使用devtools安装软件包时,我得到:

Error in .C("pdf_sum_unif", as.integer(n), as.double(x), as.integer(nx),  : 
  "pdf_sum_unif" not available for .C() for package "npcp"

我尝试为我的包创建src文件,向其中添加.c.h文件,使用LinkingTo: npcp,也尝试按照本教程进行操作:{{ 3}},但没有任何效果。有什么建议吗?

0 个答案:

没有答案