我想使用zoo
将数据从Rinside
对象传递到我的C ++程序中,
但我不知道如何通过约会。
这是一个例子
RInside R(argc, argv); // create an embedded R instance
std::string cmd = "suppressMessages(library(zoo)); "
"z <- zoo(rnorm(10), as.Date('2000-01-01') - 0:10);";
R.parseEvalQ(cmd);
std::vector<double> v = Rcpp::as< std::vector< double > >(R.parseEval("coredata(z)"));
Rcpp::DateVector d ( (SEXP) R.parseEval("index(z)") );
std::vector<boost::gregorian::date> dt = //How assign d to dt ?
答案 0 :(得分:1)
您需要RcppBDT package中的简单转换器:
template <> boost::gregorian::date as( SEXP dtsexp ) {
Rcpp::Date dt(dtsexp);
return boost::gregorian::date(dt.getYear(), dt.getMonth(), dt.getDay());
}
然后你需要矢量化。替代方案,也许使用整数向量(自纪元以来的日期)。
编辑:有一个entire Rcpp Gallery post致力于此,以及其他几个相关主题的处理。