我对 dplyr 有一些问题,并且 group_by 函数没有按预期工作。使用 summarise,我希望获得输入到 group_by 语句中的 id 和 year 的每个唯一组合的 var1 的平均值。
此代码应创建一个带有 id-year 观察值的 df,我想在其中汇总 id 和 year 的每个组合的 var 1 的平均值。但是,这没有按预期工作,输出忽略 id,并且仅按年汇总。
df <- data.frame(id=c(1,1,2,2,2,3,3,4,4,5),
year=c(2013,2013,2012,2013,2013,2013,2012,2012,2013,2013),
var1=rnorm(10))
dplyr 代码:
dfagg <- df %.%
group_by(id, year) %.%
select(id, year, var1) %.%
summarise(
var1=mean(var1)
)
结果:
> dfagg
Source: local data frame [8 x 2]
Groups: year
year var1
1 2013 0.22924025
2 2012 -0.93073687
3 2013 -0.82351583
4 2012 0.05656113
5 2013 -0.21622021
6 2012 1.91158209
7 2013 -2.67003628
8 2013 -0.72662276
知道发生了什么吗?
为了确保没有其他包中断 dplyr 功能,我尝试了以下相同的结果。
dfagg <- df %.%
dplyr::group_by(id, year) %.%
dplyr::select(id, year, var1) %.%
dplyr::summarise(
var1=mean(var1)
)