[R] Help with integrating R and c/c++

Martin Morgan mtmorgan at fhcrc.org
Sun Feb 6 18:13:31 CET 2011


On 02/06/2011 07:28 AM, Rohit Pandey wrote:
> Hi,
> 
> I have been using R for close to two years now and have grown quite
> comfortable with the language. I am presently trying to implement an
> optimization routine in R (Newton Rhapson). I have some R functions that
> calculate the gradient and hessian (pre requisite matrices) fairly
> efficiently. Now, I have to call this function iteratively until some
> convergance criterion is reached. I think the standard method of doing this
> in most programming languages is a while loop. However, I know R can get
> pretty slow when you use loops. In order to make this efficient, I want to

Have you looked at ?optim or ?optimize or perhaps ?nlm ? The bulk of the
computation is in repeatedly evaluating the function and its gradient,
rather than the machinery to iterate to convergence. Maybe these parts
of your code can be written more efficiently?

Martin

> transfer this part of my code to a more efficient programming language like
> c++ or c. However, I have been trying to learn this all day without any
> luck. I found a package called Rcpp that makes this easier. However, it
> seems some functional knowledge of writing R packages is a pre requisite. I
> tried to follow the standard manual for doing this, but could not find a
> simple example to get me started. I know I am supposed to make a cpp file
> and put it some where before it can be called from R, but I'm confused as to
> how this can be done.
> 
> My requirement is to start with a parameter vector, update it according to
> the gradient and hessian, check if the parameter satisfies some convergance
> criterion and continue doing this until it does. Is there a way to
> efficiently do this through an R function (replicate?). The problem is that
> the number of iterations is not fixed. If there is no function in R, is
> there a way I can quickly use Rcpp or some thing to have this last part of
> my code in a C or C++ program which repeatedly calls my R functions for
> updating the parameters?
> 


-- 
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109

Location: M1-B861
Telephone: 206 667-2793



More information about the R-help mailing list