通过Rcpp使用C ++运行r函数

时间:2018-04-23 12:35:43

标签: rcpp

试图了解Rcpp的工作原理,我运行了这个脚本:

// [[Rcpp::export]]
NumericVector my_fun(){
// calling rnorm()
Function f("rnorm");   

// Next code is interpreted as rnorm(n=5, mean=10, sd=2)
return f(5, Named("sd")=2, _["mean"]=10);
}

为了使用Rcpp将R函数用于C ++。 以下是错误消息:

  

错误:'NumericVector'未命名类型。

我检查了Rtools并安装了它,所以我不明白它为什么接受NumericVector作为类型名称。

1 个答案:

答案 0 :(得分:1)

你失败了 - 添加第using namespace Rcpp;行 - 或者用Rcpp::作为标识符的前缀; - 您也未能为Rcpp添加#include

这有效:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector my_fun(){
  // calling rnorm()
  Function f("rnorm");   

  // Next code is interpreted as rnorm(n=5, mean=10, sd=2)
  return f(5, Named("sd")=2, _["mean"]=10);
}

如果您不知道,Rcpp还有一个矢量化Rcpp::rnorm()作为C ++函数 - 请参阅Rcpp Sugar的文档。