dplyr – 聚合不正确?
发布时间:2020-12-14 05:01:00 所属栏目:百科 来源:网络整理
导读:我有dplyr的som问题,group_by函数没有按预期工作.使用汇总,我希望得到输入到group_by语句中的id和year的每个唯一组合的var1的均值. 此代码应创建一个带有id年观察的df,其中我想为每个id和year组合聚合var 1的均值.但是,这不能按预期工作,输出会忽略id,而只会
我有dplyr的som问题,group_by函数没有按预期工作.使用汇总,我希望得到输入到group_by语句中的id和year的每个唯一组合的var1的均值.
此代码应创建一个带有id年观察的df,其中我想为每个id和year组合聚合var 1的均值.但是,这不能按预期工作,输出会忽略id,而只会在年份聚合. df <- data.frame(id=c(1,1,2,3,4,5),year=c(2013,2013,2012,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,var1) %.% dplyr::summarise( var1=mean(var1) ) 解决方法
我认为你不需要select()行.只是使用group_by()和summarize()为我做了诀窍.
library(dplyr) df <- data.frame(id=c(1,var1=rnorm(10)) df %>% group_by(id,year) %>% summarise(mean_var1=mean(var1)) -> dfagg 结果: id year mean_var1 (dbl) (dbl) (dbl) 1 1 2013 -1.20744511 2 2 2012 -0.59159641 3 2 2013 -0.03660552 4 3 2012 -0.38853566 5 3 2013 -1.76459495 6 4 2012 -0.66926387 7 4 2013 0.70451751 8 5 2013 -0.82762769 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |