使用C ++函数作为R包“Rcpp”中另一个C ++函数的参数

时间:2017-10-06 09:44:32

标签: c++ r rcpp

我是使用R包“Rcpp”的新手。我的问题是,如果我想在另一个C ++函数中使用C ++函数作为参数,我该怎么做?例如:假设我有一个像这样的C ++函数:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
double maxllC3(const double mu){
 double result;
 result= R::dgamma(mu,0.1,1,0.1);
 return result;
 }

。我想在另一个C ++函数中使用此函数,就像我们可以在R:

中一样
sumf<-function(maxllC3,mu,y){
  res<-maxllC3(mu)+y
  return(res)
}

。我怎么能在“Rcpp”包中做到这一点?

1 个答案:

答案 0 :(得分:-1)

  • 将rcpp代码放在.cpp文件中(比如ex.cpp)。

  • 使用Rcpp::sourceCpp('ex.cpp')在全球环境中提供此功能

  • 然后只需使用sumf <- function(mu, y) maxllC3(mu) + y