【发布时间】:2015-07-14 23:48:51
【问题描述】:
我正在 Rstudio 中制作一个 R 包,我选择了选项 Configure Build Tools > Configure 并选择了 Use roxygen to generate NAMESPACE。我在 Rcpp 中编写了我的函数,这就是我使用 roxygen2 生成 NAMESPACE 时的样子:
# Generated by roxygen2 (4.1.1): do not edit by hand
export(function1)
export(function2)
export(function3)
export(function4)
由于我的函数是用 Rcpp 编写的,然后我将其导出,因此它们将通过 .Call 在 R 中使用。但是,在这种情况下,我们应该从writing R extensions 使用useDynLib()。这就是为什么我认为当我尝试调用 function1 时出现错误并且错误是:
Error in .Call("Mypackage_function1", PACKAGE = "Mypackage", var1, :
"Mypackage_function1" not available for .Call() for package "Mypackage"
当我在 Rstudio 中启动项目时使用默认的NAMESPACE 时,NAMESPACE 中有以下内容:
useDynLib(packagename)
exportPattern("^[[:alpha:]]+")
importFrom(Rcpp, evalCpp)
当我使用默认的NAMESPACE 时,我可以使用.Call 调用函数,但是当我检查我没有使用roxygen 生成NAMESPACE 的包时收到警告。
有解决办法吗?任何建议表示赞赏。
【问题讨论】:
标签: r namespaces rcpp