我正在使用Rcpp函数编写R包。我需要在R代码中调用一些Rcpp函数,但最终使用时不会看到它们。我正在使用devtools基础设施来促进开发过程。在使用Rcpp之前,我习惯用“。”隐藏作为“内部”的R功能。 prexif在名字之前。因此 exportPattern( “^ [[:阿尔法:]] +”) 够了。我在所有Rcpp C ++函数上都使用了“Cpp”后缀。在我的包中,最终用户不打算使用它们,但是所有这些都需要由导出到最终使用的R函数使用。我把// [[Rcpp :: export]]放在他们的定义之前,我用export导出了exportPattern(需要用逗号分隔所有导出的函数)。但是我有一个包含大量要导出的函数的包,因此我想知道是否可以重写“^ [[:alpha:]] +”以便不导出以“。”开头的所有函数。或以“Cpp”结尾。
答案 0 :(得分:3)
最后,我发现我只需要在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