Abhijit, I think you are making your life harder than you need to. Consider this simple C++ program implementing your example (of loading fPortfolio, converting the data in SWX.RET to a matrix M, exporting M to C++ and showing its content):
e...@ron:~/svn/rinside/pkg/inst/examples> cat rinside_test2.cpp // -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; -*- // // Simple example for the repeated r-devel mails by Abhijit Bera // // Copyright (C) 2009 Dirk Eddelbuettel and GPL'ed #include "RInside.h" // for the embedded R via RInside #include "Rcpp.h" // for the R / Cpp interface used for transfer int main(int argc, char *argv[]) { RInside R(argc, argv); // create an embedded R instance SEXP ans; std::string txt = "suppressMessages(library(fPortfolio))"; R.parseEvalQ(txt); // load library, no return valueassign matrix M to SEXP variable ans txt = "M <- as.matrix(SWX.RET); print(head(M)); M"; R.parseEval(txt, ans); // assign matrix M to SEXP variable ans RcppMatrix<double> M(ans); // convert SEXP variable to an RcppMatrix std::cout << "M has " << M.getDim1() << " rows and " << M.getDim2() << " cols" << std::endl; R.parseEval("colnames(M)", ans); // assign columns names of M to ans RcppStringVector cnames(ans); // and into string vector cnames for (int i=0; i<M.getDim2(); i++) { std::cout << "Column " << cnames(i) << " in row 42 has " << M(42,i) << std::endl; } exit(0); } Compiling and linking against the RInside (for the embedded R) and Rcpp (for the type conversion) libraries (using a simple 'make rinside_test2' using an implicit make rule in the examples/ directory), I get this program: e...@ron:~/svn/rinside/pkg/inst/examples> ./rinside_test2 Package 'sn', 0.4-12 (2009-03-21). Type 'help(SN)' for summary information Using the GLPK callable library version 4.37 SBI SPI SII LP25 LP40 LP60 2000-01-04 -0.0020881 -0.034390 1.367e-05 -0.011994 -0.018013 -0.026155 2000-01-05 -0.0001045 -0.010408 -4.955e-03 -0.003657 -0.005837 -0.009011 2000-01-06 -0.0013598 0.012119 3.813e-03 -0.001324 -0.001645 -0.002396 2000-01-07 0.0004186 0.022462 -6.162e-04 0.007715 0.011660 0.017063 2000-01-10 0.0000000 0.002108 2.381e-03 0.003029 0.004566 0.006948 2000-01-11 -0.0010468 -0.002774 -2.938e-04 -0.002423 -0.003143 -0.004183 M has 1916 rows and 6 cols Column SBI in row 42 has -0.000848356 Column SPI in row 42 has 0.0129016 Column SII in row 42 has -0.000141168 Column LP25 in row 42 has 0.00261833 Column LP40 in row 42 has 0.00443192 Column LP60 in row 42 has 0.00694762 e...@ron:~/svn/rinside/pkg/inst/examples> This took literally a few minutes to put together, given the infrastructure provided by Rcpp and RInside. Comments welcome. I know I still need to enhance the installation instructions for RInside -- it works out of the box for Debian / Ubuntu on 32 and 64 bit, but another user on FC 64bit alerted me to issues he experienced which I need to fix. Hth, Dirk -- Three out of two people have difficulties with fractions. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel