Manu Sharma
Manu Sharma

Reputation: 1739

Total Mean & Mean by groups in R with dplyr

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

Upvotes: 1

Views: 2102

Answers (2)

akrun
akrun

Reputation: 887118

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

Upvotes: 1

nicola
nicola

Reputation: 24480

Try this:

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

Upvotes: 4

Related Questions