# [R] average of y at each level of x?

Liaw, Andy andy_liaw at merck.com
Fri Nov 7 20:54:11 CET 2003

```Try (untested):

p1 <- tapply(y, x, function(z) mean(z == 0))

HTH,
Andy

> From: Bill Simpson [mailto:William.Simpson at drdc-rddc.gc.ca]
>
> I have x,y data and would like to compute the average of y at
> each level
> of x.
>
> > x
>  [1] 0.006110 0.007027 0.007027 0.007027 0.008081 0.008081
> 0.008081 0.008081  [9] 0.008081 0.008081 0.008081 0.009293
> 0.009293 0.009293 0.009293 0.009293 [17] 0.009293 0.009293
> 0.009293 0.010686 0.010686 0.010686 0.010686 0.010686 [25]
> 0.010686 0.010686 0.010686 0.010686 0.010686 0.012289
> 0.012289 0.012289 [33] 0.012289 0.012289 0.012289 0.012289
> 0.012289 0.012289 0.012289 0.012289 [41] 0.012289 0.012289
> 0.014133 0.014133 0.014133 0.014133 0.016253 0.018691 [49]
> 0.021494 0.024718 0.028426 0.032690 0.037594 0.043233
> 0.049718 0.057175 [57] 0.065752 0.075614 0.086957 0.100000
>
> > y
>  [1] 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0
> 1 1 1 0 1 1 1 1 1 1 [39] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>
> > table(x,y)
>           y
> x          0  1
>   0.00611   1  0
>   0.007027  2  1
>   0.008081  3  4
>   0.009293  3  5
>   0.010686  4  6
>   0.012289  1 12
>   0.014133  0  4
>   0.016253  0  1
>   0.018691  0  1
>   0.021494  0  1
>   0.024718  0  1
>   0.028426  0  1
>   0.03269   0  1
>   0.037594  0  1
>   0.043233  0  1
>   0.049718  0  1
>   0.057175  0  1
>   0.065752  0  1
>   0.075614  0  1
>   0.086957  0  1
>   0.1       0  1
>
> I would like to compute p = count1/(count0 +count1). For
> example, for x=0.012289, p= 12/(1+12)= 0.923077. Please tell
> me how to do it. Maybe
> there is a better way to do this without going through table().
>
> Thanks very much for any help.
>
> Bill Simpson
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo> /r-help
>

```

More information about the R-help mailing list