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

Bill Simpson William.Simpson at drdc-rddc.gc.ca
Fri Nov 7 15:47:35 CET 2003


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




More information about the R-help mailing list