Rcpp 快速引用指南展示了如何从 Rcpp 代码中的包调用 R 函数。它以 stats 包为例。但是如果我做了一个包,并且我想用 Rcpp 调用这个包中的 R 函数,也在这个包中,我该怎么办?我没有尝试,但我想按照 stats 示例,简单地将 stats 替换为 mypackage 是行不通的,因为 mypackage 在编译期间还不存在。我希望我的英语措辞是清楚的...
最佳答案
我通过调用 kitten.r
设置了一个快速包 tstpkg
使用pkgKitten包。
我添加了这个 R 函数:
theAnswer <- function() { 42L }
事实上,我们可以从同一个包中调用它只需不添加任何命名空间等前缀即可,如
#include <Rcpp/Light>
// [[Rcpp::export]]
bool checkAnswer() {
Rcpp::Function f("theAnswer");
int val = Rcpp::as<int>(f());
return val == 42;
}
命令行上的快速临时调用确认:
$ Rscript -e 'library(tstpkg); theAnswer(); checkAnswer()'
[1] 42
[1] TRUE
$
关于r - 在一个包中,如何使用 Rcpp 调用该包中的 R 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76038026/