as.vector(do.call(c, lapply(split(x0, y0), mean)))
Test with data generated according to your code:
> phi=NULL
> for (i in 1:length(ind2)){
+ phi[i]=sum(x0[y0==ind1[i]])/ind2[i]
+ }
> phi
[1] -0.18922774 0.36333115 -0.04295032 -0.13892563 -0.03968301 0.33326034
[7] 0.28649576 -0.03786830
> as.vector(do.call(c, lapply(split(x0, y0), mean)))
[1] -0.18922774 0.36333115 -0.04295032 -0.13892563 -0.03968301 0.33326034
[7] 0.28649576 -0.03786830
HTH,
Dennis
On Mon, May 3, 2010 at 10:11 AM, song song <[email protected]> wrote:
> x0=rnorm(100)
> y0=rpois(100,3)+1
>
> ind=as.data.frame(table(y0))
>
> ind1=ind[,1]
> ind2=ind[,2]
>
> phi=NULL
> for (i in 1:length(ind2)){
> phi[i]=sum(x0[y0==ind1[i]])/ind2[i]
> }
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.