使用R中的列的平均值创建表

时间:2014-06-10 13:12:41

标签: r

我有以下数据框:

test <- data.frame(Gender = rep(c("M","F"),5), Death = c(1981:1985), Age = c(21:30))

我想知道如何使用命令table而不是ddply重现以下结果:

library(plyr)
ddply(test, c("Gender", "Death"), summarise, AgeMean = mean(Age))
  Death AgeMean
1  1981    23.5
2  1982    24.5
3  1983    25.5
4  1984    26.5
5  1985    27.5

3 个答案:

答案 0 :(得分:2)

我认为你的意思是aggregate ......

aggregate( Age ~ Death , data = test , FUN = mean )
#  Death  Age
#1  1981 23.5
#2  1982 24.5
#3  1983 25.5
#4  1984 26.5
#5  1985 27.5

答案 1 :(得分:2)

或者您也可以使用summaryBy包中的doBy

summaryBy(Age ~ Death,data=test,FUN=mean)
Death   Age.mean
1981    23.5
1982    24.5
1983    25.5
1984    26.5
1985    27.5

~左侧的变量是您要执行函数FUN=的变量(在本例中为mean)和变量( s)~右侧是您想要的新级别的聚合。

答案 2 :(得分:0)

您也可以使用dplyr

执行此操作
library(dplyr)

test %>%
  group_by(Death) %>%
  summarise(Age.mean = mean(Age))

我发现dplyr的链接语法会产生非常易读的代码,但这是个人偏好。

Source: local data frame [5 x 2]

  Death Age.mean
1  1981     23.5
2  1982     24.5
3  1983     25.5
4  1984     26.5
5  1985     27.5