如果我有一系列包含两个变量 X 和 Y 的观察结果,如何根据变量 X 的范围获得 Y 的平均值?
例如,有一些数据,例如:
df = data.frame(x=runif(50,1,100),y=runif(50,300,700))
我怎样才能得到“当X为1-10时,y的平均值为332.4,当X为11-20时,y的平均值为632.3,等等......”的答案
剪切你的 x 使用cut
然后使用ddply
包装内plyr
:
> df$xrange <- cut(df$x, breaks=seq(0, 100, 10))
library(plyr)
ddply(df, .(xrange), summarize, mean_y=mean(y))
xrange mean_y
1 (0,10] 490.7571
2 (10,20] 462.6347
3 (20,30] 507.5614
4 (30,40] 482.6004
5 (40,50] 510.3081
6 (50,60] 480.7927
7 (60,70] 507.8944
8 (70,80] 458.4668
9 (80,90] 501.9672
10 (90,100] 493.4844
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)