Hi, Roger,


At 01:37 PM 7/14/03 -0700, Roger D. Peng wrote:
It's important to remember that in R functions return whatever happens to be the last element of the function block, unless there is an explicit 'return' statement. Your function 'f' in the second example is written incorrectly and will not work in 'optim'. The last element in the function block is:

write.table (bioday, file = "perch.csv", append = FALSE, sep=",", na = NA, col.names = TRUE)

which I assume is *not* the value you want the function return. Your function 'f' is returning whatever 'write.table' returns, which is nothing useful. My guess is that you want your function 'f' to return the value 'f' defined in the function as

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

So this statement should be the last line of your function.

This is valuable information. Thanks very much. I'll move things about and see what happens.



Also, your function 'f' (still from the second output) doesn't use the value 'q' at all, so I can't see how the optimizer can optimize a function that ignores its parameters.

From what I've read and the examples I've encountered, the 'optim' function expects the first entry in


optim(x, f, etc....)

To be the starting point for your variable that you specify earlier in the loop under

f<- function (x)

If I am wrong on this, then this could be giving me problems as well.

-roger

Michael Rennie M.Sc. Candidate University of Toronto at Mississauga 3359 Mississauga Rd. N. Mississauga, ON L5L 1C6 Ph: 905-828-5452 Fax: 905-828-3792

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to