改变R套餐' exportPattern隐藏Rcpp函数

时间:2015-02-16 13:09:45

标签: c++ r rcpp

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

1 个答案:

答案 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