求x的每个分组值的y的平均值

时间:2015-01-23 00:21:29

标签: r

我有以下问题: 我有一个包含两列的data.frame。我将'找到x的每个分组值的y的平均值[来自hrbrmstr的公式]。例如:

 x <- c(1,4,4,2,1,3,4,2,3,4)
 y <- c(2.23,5.56,5.53,3.32,2.32,4.21,5.60,3.43,4.32,5.59)
 my.data <- data.frame(x,y)   

> my.data
x    y
1  1 2.23
2  4 5.56
3  4 5.53
4  2 3.32
5  1 2.32
6  3 4.21
7  4 5.60
8  2 3.43
9  3 4.32
10 4 5.59

如果我手动计算它是:

xx <- c(1,2,3,4)
yy <- c(mean(c(2.23,2.32)),mean(c(3.32,3.43)),mean(c(4.21,4.32)),mean(c(5.56,5.53,5.60,5.59)))
my.data.corr <- data.frame(xx,yy)

结果data.frame应为:

> my.data.corr
xx    yy
1  1 2.275
2  2 3.375
3  3 4.265
4  4 5.570

结果中xx的顺序无关紧要。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

如果您尝试查找每个分组值y x的平均值,则您的示例输出错误。

 library(dplyr)

 my.data %>%
   group_by(x) %>%
   summarise(yy=mean(y))

##   x    yy
## 1 1 2.275
## 2 2 3.375
## 3 3 4.265
## 4 4 5.570

如果您正在尝试做其他事情,请重新说出您的问题。