r - 在一个包中,如何使用 Rcpp 调用该包中的 R 函数?

标签 r package rcpp

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/

相关文章:

r - 如何在 R 中复制每个组级别的特定行数

java - 如何在 Eclipse 中将所有包从一个 Web 应用程序迁移到新的 Web 应用程序项目?

node.js - 如何将 Git 哈希写入( Node 的)package.json?

r - 如何使用 RcppArmadillo 绘制多项分布样本?

r - 不同的方法来修剪均值会产生不同的结果

r - 使用 purrr 和 R 执行多元回归

r - 在 R : Search all emails by subject line, 中,从正文中提取逗号分隔值,然后将值保存在数据框中

java - 查找项目中的所有包

RcppEigen 包 "#pragma clang diagnostic pop"警告

Rcpp 检查列表是否有一个元素