![](/img/trans.png)
[英]Adding a new column to data.frame with a factor depending conditions from another 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.