# [R] Functions ,Optim, & Dataframe

Tony Plate tplate at acm.org
Mon Jul 31 21:05:15 CEST 2006

```I added an example of passing additional arguments through optim() to
the objective and gradient functions to the Discussion section of the
Wiki-fied R documentation.  See it at
http://wiki.r-project.org/rwiki/doku.php?id=rdoc:stats:optim

-- Tony Plate

PS.  I had to add "&purge=true" to the end of the URL, i.e.,
http://wiki.r-project.org/rwiki/doku.php?id=rdoc:stats:optim&purge=true
in order to see the original documentation the first time -- it's
something to do with bad cache entries for the page.

Michael Papenfus wrote:
> I think I need to clarify a little further on my original question.
>
> I have the following two rows of data:
> mydat<-data.frame(d1=c(3,5),d2=c(6,10),p1=c(.55,.05),p2=c(.85,.35))
>  >mydat
>   d1 d2 p1 p2
> 1 3 6 0.55 0.85
> 2 5 10 0.05 0.35
>
> I need to optimize the following function using  optim for each row in mydat
> fr<-function(x) {
>     u<-x[1]
>     v<-x[2]
>     sqrt(sum((plnorm(c(d1,d2,u,v)-c(p1,p2))^2))
> }
> x0<-c(1,1)    # starting values for two unknown parameters
> y<-optim(x0,fr)
>
> In my defined function fr, (d1 d2 p1 p2) are known values which I need
> to read in from my dataframe and u & v are the TWO unknown parameters.
> I want to solve this equation for each row of my dataframe.
>
> I can get this to work when I manually plug in the known values (d1 d2
> p1 p2).  However, I would like to apply this to each row in my dataframe
> where the known values are automatically passed to my function which
> then is sent to optim which solves for the two unknown parameters for
> each row in the dataframe.
>
> thanks again,
> mike
>

```