[R] Help with integrating R and c/c++
Ravi Varadhan
rvaradhan at jhmi.edu
Sun Feb 6 21:03:48 CET 2011
Hi Rohit,
It is fine if you are using the Newton's method just as an excuse to learn Rcpp. If, however, your main goal is to develop a package to implement Newton's method, then you need to stop and look at the numerous optimization packages available in R. A good place to start would be the "optimx" package, which unifies a large number of optimiaztion tools under one umbrella.
Hope this helps,
Ravi.
____________________________________________________________________
Ravi Varadhan, Ph.D.
Assistant Professor,
Division of Geriatric Medicine and Gerontology
School of Medicine
Johns Hopkins University
Ph. (410) 502-2619
email: rvaradhan at jhmi.edu
----- Original Message -----
From: Rohit Pandey <rohitpandey576 at gmail.com>
Date: Sunday, February 6, 2011 11:33 am
Subject: [R] Help with integrating R and c/c++
To: r-help at r-project.org
> 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
> 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?
>
> --
> Thanks in advance,
> Rohit
> Mob: 91 9819926213
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
>
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list