我有以下数据框:
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
答案 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