2016-12-14 623 views
0

我想計算每組的相對頻率。如何計算每組的相對頻率

這是我的數據集:

CATEGOTY VALUE COUNT 
AAA  1  230 
AAA  0  150 
BBB  1  155 
BBB  0  320 

預期的結果是這一個,其中PROC除以COUNT通過VALUE==0VALUE==1總和每組獲得:

CATEGOTY VALUE COUNT PROC 
AAA  1  230  0.60 
AAA  0  150  0.40 
BBB  1  155  0.33 
BBB  0  320  0.67 

事實上,我使用此代碼收到第一個分組數據集:

set = df %>% 
    group_by(CATEGORY,VALUE) %>% 
    summarise(COUNT = n()) 

所以,我想知道如何調整此代碼以獲得更多列PROC

回答

0

與基R:

df$PROC <- round(ave(df$COUNT, df$CATEGOTY, FUN=function(x)x/sum(x)),3) 
df 
# CATEGOTY VALUE COUNT PROC 
#1  AAA  1 230 0.605 
#2  AAA  0 150 0.395 
#3  BBB  1 155 0.326 
#4  BBB  0 320 0.674 
1
library(dplyr) 
df %>% group_by(CATEGOTY) %>% mutate(PROC = round(COUNT/sum(COUNT),1)) 

# CATEGOTY VALUE COUNT PROC 
#  <chr> <int> <int> <dbl> 
#1  AAA  1 230 0.6 
#2  AAA  0 150 0.4 
#3  BBB  1 155 0.3 
#4  BBB  0 320 0.7