簡體   English   中英

使用分組的摘要按因子對另一個data.frame列進行操作

[英]Use grouped summary to operate in another data.frame column by factor

例如,我想計算分組的data.framesummary

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM