使用 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
假设我有一个类似
的数据集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