r dplyr汇总和传播:计算行的百分比(如Excel数据透视表)

时间:2017-11-12 12:50:43

标签: r

我是一个新的R程序员,可能是一个非常简单的问题。

我有一个dplyr汇总/传播片段如下:

enroll_data_eth_sum <- group_by(enroll_data_distinct, EMISEthnicity) %>% 
  summarize(freq = n()
  ) %>% 
  spread(EMISEthnicity, freq)

生成此表:

Output Table

我需要的是该表是行的百分比...而不是值。我尝试过一些东西(比如freq =(n = n())/ sum(n)),但这只是给了所有的1(反射时可能是正确的)。

有什么想法?我知道这很简单......谢谢!!

约翰

更新:我根据Cedric的帖子尝试了以下内容:

enroll_data_eth_sum <- group_by(enroll_data_distinct, EMISEthnicity) 
 %>% 
 summarize(n = n()) %>% 
 mutate(freq = n / sum(n)) %>% 
 spread(EMISEthnicity, freq)

但那给了我这张桌子:

Updated with Mutate

值是正确的......但我需要一行。 ??

1 个答案:

答案 0 :(得分:1)

摆脱n列,例如:

enroll_data_eth_sum <- group_by(enroll_data_distinct, EMISEthnicity) %>% 
 summarize(n = n()) %>% 
 mutate(freq = n / sum(n)) %>%
 select(-n) %>%
 spread(EMISEthnicity, freq)