Re: [R] apply

From: Berton Gunter <gunter.berton_at_gene.com>
Date: Sat 14 Jan 2006 - 08:24:28 EST


You are not calling apply() properly. Please read relevant reference material carefully. You might also wish to pick up one of the several good books on R (check CRAN website) -- I like V&R's S PROGRAMMING.

I did not go through your example in detail, but your apply() call should be of the form

apply(d,2,function(x)optim(x,...))

You may or may not get into scoping problems with the opt1 argument and have to pass it in explicitly -- I can't remember how things work with optim.

"The business of the statistician is to catalyze the scientific learning process." - George E. P. Box    

> -----Original Message-----
> From: r-help-bounces@stat.math.ethz.ch
> [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of
> Guenther, Cameron
> Sent: Friday, January 13, 2006 11:03 AM
> To: R-help@r-project.org
> Subject: [R] apply
>
> 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
>



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 Received on Sat Jan 14 08:36:27 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:04 EST