使用分组摘要按因子在另一个data.frame列中操作

时间:2016-11-10 00:49:36

标签: r dplyr r-factor

我想计算一个分组summary的{​​{1}},例如。

data.frame

为了稍后转换另一个共享相同因子水平的df_summ = mtcars %>% group_by(am) %>% summarise(mean_mpg=mean(mpg)) am mean_mpg (dbl) (dbl) 1 0 17.14737 2 1 24.39231 ,而不是行数。例如,计算每个组的单个值的平均值的绝对差值。

这是玩具示例

data.frame

我想做的计算是toy=data.frame(am=c(1,1,0,0),mpg=c(1,2,3,4)) 因子。

我的头告诉我dplyr必须能够做到这一点,但我无法想出办法。 我想保留原始data.frame(如,使用y = abs(toy$mpg- df_summ$mean_mpg)

预期输出看起来像那样

mtcars %>% group_by(am) %>% mutate(...)

1 个答案:

答案 0 :(得分:2)

加入两个数据帧,然后执行计算:

toy %>% 
    left_join(df_summ) %>% 
    mutate(y = abs(mpg - mean_mpg))

,并提供:

Joining, by = "am"
  am mpg mean_mpg        y
1  1   1 24.39231 23.39231
2  1   2 24.39231 22.39231
3  0   3 17.14737 14.14737
4  0   4 17.14737 13.14737