用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机器上寻找一个简单的轻量级解决方案。
答案 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),它给出了非常清晰的逐步方法