在R脚本中使用C ++程序的返回值

时间:2014-10-12 12:38:31

标签: c++ r return-value

用C ++编写的模拟结果在运行时存储为double。现在我喜欢在R脚本中使用这个double来分析一次运行与另一次运行的变化是否正常。 由于我不允许返回双重表单main,我目前正在关注:

//...
cout<<D<<endl; //D is my double containing the simulation result
return 0 };

我从R脚本调用程序10次,并喜欢将D的值存储在R-vector(也称为D)中。

for(i in 1:10) {
  D[i] <- as.numeric(system("./program"))
}

但是,D将填充C ++程序的返回值,因此为10个零。我可以以某种方式使用cout的值吗?或者有更好的沟通方式吗?

请注意,我在Linux机器上寻找一个简单的轻量级解决方案。

1 个答案:

答案 0 :(得分:0)

说真的,如果你关注R和c ++之间的通信,你应该考虑使用Rcpp(http://cran.r-project.org/web/packages/Rcpp/index.html),特别是读取Rcpp属性(http://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-attributes.pdf),它给出了非常清晰的逐步方法