总平均值& R中的组与dplyr

时间:2017-05-25 07:06:21

标签: r dataframe dplyr plyr

假设我有一个像

这样的数据集
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中打开我的数据增益,以便在不同的时间执行不同的操作

2 个答案:

答案 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