Hello,

the more general thing I'd like to learn here is how to compute Function of
Data on the basis of grouping determiend by n variables.

In terms of the reason why I am interested in this, I need to compute the
average of my data based on the value of the month and day across years. I
have come up withy the code below which, as far as I can see, does what I
need but getting either a more elegant or a more versatile way to do this
would be nice.

Thanks

Paolo.

Days = format(as.Date(Data[["GasDays"]], format = "%d/%m/%Y"), "%d")
Months = format(as.Date(Data[["GasDays"]], format = "%d/%m/%Y"), "%m")
MonthDayCombs = paste(Months, Days)
AvgDemand = data.matrix(by(Data$RescaledDemand,  DayMonthCombs, mean))



On 4 July 2011 10:34, EdBo <n.bowora@gmail.com> wrote:

> Hi
>
> May you help me correct my loop function.
>
> I want optim to estimates al_j; au_j; sigma_j;  b_j by looking at 0 to 20,
> 21 to 40, 41 to 60 data points.
>
> The final result should have 4 columns of each of the estimates AND 4 rows
> of each of 0 to 20, 21 to 40, 41 to 60.
>
> ###MY code is
>
> n=20
> runs=4
> out=matrix(0,nrow=runs)
>
> llik = function(x)
>   {
>    al_j=x[1]; au_j=x[2]; sigma_j=x[3];  b_j=x[4]
>    sum(na.rm=T,
>        ifelse(a$R_j< 0, -log(1/(2*pi*(sigma_j^2)))-
>                           (1/(2*(sigma_j^2))*(a$R_j+al_j-b_j*a$R_m))^2,
>         ifelse(a$R_j>0 , -log(1/(2*pi*(sigma_j^2)))-
>                           (1/(2*(sigma_j^2))*(a$R_j+au_j-b_j*a$R_m))^2,
>
> -log(pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2))-
>                           pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2)))))
>
>       )
>
>   }
>
> start.par = c(0, 0, 0.01, 1)
> out1 = optim(llik, par=start.par, method="Nelder-Mead")
>
>
> for (i in 1: runs)
> {
>  index_start=20*(i-1)+1
>  index_end= 20*i
>  out[i]=out1[index_start:index_end]
> }
> out
>
>
> Thank you in advance
>
> Edward
> UCT
> ####My data
>
> R_j             R_m
> -0.0625         0.002320654
> 0               -0.004642807
> 0.033333333     0.005936332
> 0.032258065     0.001060848
> 0               0.007114057
> 0.015625        0.005581558
> 0               0.002974794
> 0.015384615     0.004215271
> 0.060606061     0.005073116
> 0.028571429     -0.006001279
> 0               -0.002789594
> 0.013888889     0.00770633
> 0               0.000371663
> 0.02739726      -0.004224228
> -0.04           0.008362539
> 0               -0.010951605
> 0               0.004682924
> 0.013888889     0.011839993
> -0.01369863     0.004210383
> -0.027777778    -0.04658949
> 0               0.00987272
> -0.057142857    -0.062203157
> -0.03030303     -0.119177639
> 0.09375         0.077054642
> 0               -0.022763619
> -0.057142857    0.050408775
> 0               0.024706076
> -0.03030303     0.004043701
> 0.0625          0.004951088
> 0               -0.005968731
> 0               -0.038292548
> 0               0.013381097
> 0.014705882     0.006424728
> -0.014492754    -0.020115626
> 0               -0.004837891
> -0.029411765    -0.022054654
> 0.03030303      0.008936428
> 0.044117647     8.16925E-05
> 0               -0.004827246
> -0.042253521    0.004653096
> -0.014705882    -0.004222151
> 0.029850746     0.000107267
> -0.028985507    -0.001783206
> 0.029850746     -0.006372981
> 0.014492754     0.005492374
> -0.028571429    -0.009005846
> 0               0.001031683
> 0.044117647     0.002800551
>
>
>
>
>
>
>
>
>
>
>
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/loop-in-optim-tp3643230p3643230.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]

