使用 dplyr 在 R 中按组划分的总均值和均值

Total Mean & Mean by groups in R with dplyr

假设我有一个类似

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

现在我的目标是在同一数据中找到“数据的总均值”和 "Mean by Subgroups in R"。所以,我可以说我应该得到类似

的东西
#    dive  Total_Mean   speed
# 1 dive1   0.52        0.5790946
# 2 dive2   0.52        0.4864489

我正在使用代码

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

我知道这是错误的,所以我正在寻找的是如何在 dplyr 中分组并打开我的数据增益以在不同时间执行不同的操作

试试这个:

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

我们可以使用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