gpt4 book ai didi

c++ - 更改 R 包的 exportPattern 以隐藏 Rcpp 函数

转载 作者:行者123 更新时间:2023-11-30 02:40:58 24 4
gpt4 key购买 nike

我正在使用 Rcpp 函数编写 R 包。我需要在 R 代码中调用一些 Rcpp 函数,但最终使用的函数不可见。我正在使用 devtools 基础设施来促进开发过程。在使用 Rcpp 之前,我曾经用“。名称前的前缀。因此 exportPattern("^[[:alpha:]]+")够了。我在所有 Rcpp C++ 函数上使用了“Cpp”后缀。在我的包中,它们都不打算由最终用户使用,但它们都需要由导出到最终用户的 R 函数使用。我已经把//[[Rcpp::export]] 放在它们的定义之前,我用 export 替换了 exportPattern(所有需要导出的函数用逗号分隔)。但是我有一个包含大量要导出的函数列表的包,因此我想知道是否可以重写“^[[:alpha:]]+”以便不导出所有以“.”开头的函数。或以“Cpp”结尾。

最佳答案

最后,我发现我只需要在 Rcpp::export 附近附加一个括号,并按照我希望在 R 中看到的方式命名该函数(也以 . 开头)。例如

// [[Rcpp::export(.mult3sum)]]
double mult3sum(NumericVector x, NumericVector y, NumericVector z)
{
double total=0;
int n = x.size();
for(int i = 0; i < n; ++i) {
total += x[i]*y[i]*z[i];
}
return total;
}

将在 R 中被视为 .mult3sum

关于c++ - 更改 R 包的 exportPattern 以隐藏 Rcpp 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com