试图了解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作为类型名称。
答案 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的文档。