<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16588"><LINK rel=stylesheet 
href="BLOCKQUOTE{margin-Top: 0px; margin-Bottom: 0px; margin-Left: 2em}"></HEAD>
<BODY style="FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<DIV><FONT face=Verdana><FONT size=2>Dear friends,</FONT></FONT></DIV>
<DIV><FONT face=Verdana></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana>I am a newcomer of Rcpp and RInside. I installed them in 
my system and successfully build the following example:</FONT></DIV>
<DIV><FONT face=Verdana></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana>
<DIV>#include&nbsp;&lt;RInside.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;for&nbsp;the&nbsp;embedded&nbsp;R&nbsp;via&nbsp;RInside</DIV>
<DIV>&nbsp;</DIV>
<DIV></DIV>
<DIV>Rcpp::NumericMatrix&nbsp;createMatrix(const&nbsp;int&nbsp;n)&nbsp;{</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;Rcpp::NumericMatrix&nbsp;M(n,n);</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i=0;&nbsp;i&lt;n;&nbsp;i++)&nbsp;{</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;j=0;&nbsp;j&lt;n;&nbsp;j++)&nbsp;{</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M(i,j)&nbsp;=&nbsp;i*10+j;&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;return(M);</DIV>
<DIV>}</DIV>
<DIV>&nbsp;</DIV>
<DIV></DIV>
<DIV>int&nbsp;main(int&nbsp;argc,&nbsp;char&nbsp;*argv[])&nbsp;{</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;mdim&nbsp;=&nbsp;4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;let&nbsp;the&nbsp;matrices&nbsp;be&nbsp;4&nbsp;by&nbsp;4&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;SEXP&nbsp;ans;</DIV>
<DIV></DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;RInside&nbsp;R(argc,&nbsp;argv);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;create&nbsp;an&nbsp;embedded&nbsp;R&nbsp;instance&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;Rcpp::NumericMatrix&nbsp;M&nbsp;=&nbsp;createMatrix(mdim);&nbsp;//&nbsp;create&nbsp;and&nbsp;fill&nbsp;a&nbsp;sample&nbsp;data&nbsp;Matrix&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;R["M"]&nbsp;=&nbsp;M;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;assign&nbsp;C++&nbsp;matrix&nbsp;M&nbsp;to&nbsp;R's&nbsp;'M'&nbsp;var</DIV>
<DIV></DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;std::string&nbsp;evalstr&nbsp;=&nbsp;"\</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat('Running&nbsp;ls()\n');&nbsp;print(ls());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat('Showing&nbsp;M\n');&nbsp;print(M);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat('Showing&nbsp;colSums()\n');&nbsp;Z&nbsp;&lt;-&nbsp;colSums(M);&nbsp;print(Z);&nbsp;\</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Z";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;returns&nbsp;Z</DIV>
<DIV></DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;R.parseEval(evalstr);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;eval&nbsp;the&nbsp;init&nbsp;string&nbsp;--&nbsp;Z&nbsp;is&nbsp;now&nbsp;in&nbsp;ans</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;Rcpp::NumericVector&nbsp;v(ans);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;convert&nbsp;SEXP&nbsp;ans&nbsp;to&nbsp;a&nbsp;vector&nbsp;of&nbsp;doubles</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i=0;&nbsp;i&lt;&nbsp;v.size();&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;show&nbsp;the&nbsp;result</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;&lt;&lt;&nbsp;"In&nbsp;C++&nbsp;element&nbsp;"&nbsp;&lt;&lt;&nbsp;i&nbsp;&lt;&lt;&nbsp;"&nbsp;is&nbsp;"&nbsp;&lt;&lt;&nbsp;v[i]&nbsp;&lt;&lt;&nbsp;std::endl;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;exit(0);</DIV>
<DIV>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>Now I add a function in the C++ code:</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV>const&nbsp;char*&nbsp;hello(&nbsp;std::string&nbsp;who&nbsp;){</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;std::string&nbsp;result(&nbsp;"hello&nbsp;"&nbsp;)&nbsp;;</DIV>
<DIV style="TEXT-INDENT: 2em">result&nbsp;+=&nbsp;who&nbsp;;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result.c_str()&nbsp;;</DIV>
<DIV>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>And I try to call this function in R:</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV>std::string&nbsp;txt&nbsp;=&nbsp;"ret = hello('Friends'); 
print(ret);";</DIV>
<DIV>R.parseEvalQ(txt);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;eval&nbsp;string&nbsp;quietly,&nbsp;no&nbsp;result</DIV>
<DIV>&nbsp;</DIV>
<DIV>It fails to do that. </DIV>
<DIV>&nbsp;</DIV>
<DIV>Could you please tell me how to achieve that? Thanks very much!</DIV>
<DIV>&nbsp;</DIV>
<DIV>Gao Xia</DIV></DIV></DIV></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV align=left><FONT size=2>
<HR style="WIDTH: 122px; HEIGHT: 2px" SIZE=2>
</FONT></DIV>
<DIV><FONT color=#c0c0c0><FONT size=2><SPAN>xiagao1982</SPAN></FONT></DIV>
<DIV><FONT size=2>2010-06-16</FONT></FONT></DIV></FONT></BODY></HTML>