我正在使用Rcpp函数编写R包。我需要在R代码中调用一些Rcpp函数,但最终使用它们时不会看到它们。我正在使用devtools基础结构来促进开发过程。在使用Rcpp之前,我曾经将R功能隐藏为“内部”。名称前为prexif。因此,exportPattern(“ ^ [[::::]] +”)就足够了。我在所有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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句