假设我有一个像
这样的数据集df <- data.frame(dive=factor(sample(c("dive1","dive2"),10,replace=TRUE)),speed=runif(10))
现在我的目标是找到&#34;数据的总平均值&#34;和&#34;由R&#34;中的子组表示在相同的数据。所以,我可以说我应该得到像
这样的东西# 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中打开我的数据增益,以便在不同的时间执行不同的操作
答案 0 :(得分:4)
试试这个:
df %>%
mutate(avg=mean(speed)) %>%
group_by(dive) %>%
summarise(Avg_group=mean(speed),Total_Mean=first(avg))
答案 1 :(得分:1)
我们可以使用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