使用分组摘要按因子在另一个 data.frame 列中操作
Use grouped summary to operate in another data.frame column by factor
例如,我想计算分组 data.frame
的 summary
。
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))
我想做的计算是 y = abs(toy$mpg- df_summ$mean_mpg)
系数。
我的头脑告诉我 dplyr 必须能够做到这一点,但我想不出办法。
我想保留原来的 data.frame (例如,使用 mtcars %>% group_by(am) %>% mutate(...)
)
预期的输出看起来像这样
toy
am mpg expected
1 1 1 23.39231
2 1 2 22.39231
3 0 3 14.14737
4 0 4 13.14737
加入两个数据框,然后执行计算:
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
例如,我想计算分组 data.frame
的 summary
。
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))
我想做的计算是 y = abs(toy$mpg- df_summ$mean_mpg)
系数。
我的头脑告诉我 dplyr 必须能够做到这一点,但我想不出办法。
我想保留原来的 data.frame (例如,使用 mtcars %>% group_by(am) %>% mutate(...)
)
预期的输出看起来像这样
toy
am mpg expected
1 1 1 23.39231
2 1 2 22.39231
3 0 3 14.14737
4 0 4 13.14737
加入两个数据框,然后执行计算:
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