Reputation: 1739
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
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
Reputation: 24480
Try this:
df %>%
mutate(avg=mean(speed)) %>%
group_by(dive) %>%
summarise(Avg_group=mean(speed),Total_Mean=first(avg))
Upvotes: 4