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,等等......"
切割你的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)
| 归档时间: |
|
| 查看次数: |
7899 次 |
| 最近记录: |