# [R] Excel can do what R can't?????

Spencer Graves spencer.graves at pdf.com
Wed Jul 16 15:29:22 CEST 2003

```The phrase:

f <- 1000000000*(((((Wt-Wtmod)^2)/Wt) + (((Hgt-Hgtmod)^2)/Hgt))2) ; f

is an immediate computation, not a function.  If you want a function,
try something like the following:

f <- function(x){
Wt <- x
Wtmod <- x
Hgt <- x
Hgtmod <- x
1000000000*(((((Wt-Wtmod)^2)/Wt) + (((Hgt-Hgtmod)^2)/Hgt))2)
}

OR

f <- function(x, X){
Wt <- X[,1]
Hgt <- X[,2]
Wtmod <- x
Hgtmod <- x
1000000000*(((((Wt-Wtmod)^2)/Wt) + (((Hgt-Hgtmod)^2)/Hgt))2)
}

"par" in "optim" is the starting values for "x".  Pass "X" to "f" via
"..." in the call to "optim".

If you can't make this work, please submit a toy example with the
seconds.  If it is any longer than that, it should be ignored.

hope this helps.
Spencer Graves

M.Kondrin wrote:
>  >?optim
>
> optim(par, fn, gr = NULL,
>            method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN"),
>            lower = -Inf, upper = Inf,
>            control = list(), hessian = FALSE, ...)
>
> .....
>       fn: A function to be minimized (or maximized), with first
>           argument the vector of parameters over which minimization is
>           to take place. It should return a scalar result.
>
> f <- 1000000000*(((((Wt-Wtmod)^2)/Wt) + (((Hgt-Hgtmod)^2)/Hgt))2) ; f
> What is its first argument I wonder?
> I think you have just an ill-defined R function (although for Excel it
> may be OK - do not know) and optim just chokes on it.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

```