Total Mean & Mean by groups in R with dplyr

試著忘記壹切 提交于 2019-12-11 04:38:36

问题


Assume I have a dataset something like

df <- data.frame(dive=factor(sample(c("dive1","dive2"),10,replace=TRUE)),speed=runif(10))

Now my goal is to find " Total mean of the data" and "Mean by Subgroups in R" in same data. So, I can say I should get something like

#    dive  Total_Mean   speed
# 1 dive1   0.52        0.5790946
# 2 dive2   0.52        0.4864489

I am using a code

df%>% summarise(avg=mean(speed))%>%
group_by(dive)%>%
summarise(Avg_group=mean(dive))

Which is wrong I know, So all I am seeking is how can I group by and open my data gain in dplyr for performing different operations at different time


回答1:


Try this:

df %>% 
   mutate(avg=mean(speed)) %>% 
   group_by(dive) %>% 
   summarise(Avg_group=mean(speed),Total_Mean=first(avg))



回答2:


We can use data.table

library(data.table)
setDT(df)[, .(Avg_group = mean(speed), Total_mean = mean(df$speed)),.(dive)]  
#     dive Avg_group Total_mean
#1: dive2 0.4733421  0.4238937
#2: dive1 0.3744452  0.4238937


来源:https://stackoverflow.com/questions/44174351/total-mean-mean-by-groups-in-r-with-dplyr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!