R如何根据另一个变量的范围获得一个变量的平均值?

Kyl*_*ndt 6 aggregate r dataframe

如果我有两个变量X和Y的一系列观察,我怎样才能根据变量X的范围得到Y的平均值?

例如,有些数据如下:

df = data.frame(x=runif(50,1,100),y=runif(50,300,700))

我怎么能得到答案"当X为1-10时,平均值为332.4,当X为11-20时,y的平均值为632.3,等等......"

And*_*rie 6

切割你的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
Run Code Online (Sandbox Code Playgroud)