R如何根据另一个变量的范围获得一个变量的平均值? [英] R How to Get the Average of One Variable based on Ranges of Another Variable?

查看:235
本文介绍了R如何根据另一个变量的范围获得一个变量的平均值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有两个变量X和Y的一系列观察结果,那么如何根据变量X的范围来获取Y的平均值?



所以对于例如,使用一些数据,如:



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



我如何得到答案:当X为平均值为X3.34时,当X为11-20平均值时的y为632.3等....

解决方案

使用 cut 然后在包 plyr 中使用 ddply

 > df $ xrange<  -  cut(df $ x,breaks = seq(0,100,10))

库(plyr)
ddply(df,。(xrange) 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


If I have a series of observations with two variables X and Y, how can I get the average value of Y based on ranges of variable X?

So for example, with some data like:

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

How could I get the answer to "When X is 1-10 the average of y 332.4, when X is 11-20 the average of y is 632.3, etc...."

解决方案

Cut your x using cut and then use ddply in package 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

这篇关于R如何根据另一个变量的范围获得一个变量的平均值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆