Hello, I have a dataset d which is >d pop catch 1 66462.01 10807.757 2 87486.73 46257.885 3 57211.64 9345.058 4 71321.62 4892.868 5 100024.89 27334.248 6 104504.91 48535.092 7 95295.51 39348.195 8 93737.35 34343.489 9 89375.05 28750.743 10 95312.65 30755.064 11 100888.17 55404.370 12 84790.23 37751.074 13 81129.82 29277.443 14 69797.09 21500.398 15 61690.34 18199.664 16 60671.08 19349.051 17 62852.57 16300.982 18 90646.32 34793.148
And a function opt1: opt1 <- function (x) { Z <- x + M c.hat <- (x/Z)*pop*(1-exp(-Z)) y <- (catch - c.hat)^2 return(y) } And define M = 0.25 For each row I want to return a value F that is a minimization of the opt1 function I have tried many variations of: d$F<-apply(d,2,optim(0.3,opt1,method="BFGS") and even: For (I in 1:length(pop))apply(d,2,optim(0.3,opt1,method="BFGS")) Every time I get the same error message Error in optim(0.3, opt1, method = "BFGS") : objective function in optim evaluates to length 18 not 1 So the apply function is returning 18 values of F which I want but the function only wants to return 1 value. Any Suggestions. Thanks, Cam ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html