11 int main(
int argc,
char *argv[]) {
17 "suppressMessages(library(fPortfolio)); " 18 "lppData <- 100 * LPP2005.RET[, 1:6]; " 19 "ewSpec <- portfolioSpec(); " 20 "nAssets <- ncol(lppData); ";
23 const double dvec[6] = { 0.1, 0.1, 0.1, 0.1, 0.3, 0.3 };
24 const std::vector<double> w(dvec, &dvec[6]);
26 txt =
"setWeights(ewSpec) <- weightsvec";
30 "ewPf <- feasiblePortfolio(data=lppData, spec=ewSpec, constraints=\"LongOnly\");" 32 "vec <- getCovRiskBudgets(ewPf@portfolio)";
33 Rcpp::NumericVector V( (SEXP) R.
parseEval(txt) );
34 Rcpp::CharacterVector names( (SEXP) R.
parseEval(
"names(vec)"));
36 std::cout <<
"\n\nAnd now from C++\n\n";
37 for (
int i=0; i<names.size(); i++) {
38 std::cout << std::setw(16) << names[i] <<
"\t" 39 << std::setw(11) << V[i] <<
"\n";
42 }
catch(std::exception& ex) {
43 std::cerr <<
"Exception caught: " << ex.what() << std::endl;
45 std::cerr <<
"Unknown exception caught" << std::endl;
void parseEvalQ(const std::string &line)
int parseEval(const std::string &line, SEXP &ans)
int main(int argc, char *argv[])