用dplyr计算组的百分比

时间:2017-11-30 17:34:47

标签: r dplyr

我想计算数据框中每个字符colname的百分比,但百分比不好。

我的代码:

for(i in names(which((sapply(creditDF,class) == "character")))){
  distribution <- creditDF %>%
   group_by_at(.vars = i) %>%
   summarise(value = n(),
          percent = value/sum(value)) %>%
  select(label = i, value, percent)
}

Résult:

 label value percent
 <chr> <int>   <dbl>
1 chéquier   autorisé   415       1
2 chéquier   interdit    53       1

通常对于第一行,百分比为415/468 * 100.

如何解决问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在这里,我们需要ungroup来获取整个&#39;值的sum。列即

--                       %>%
  group_by_at(.vars = i) %>%
  summarise(value = n() %>%
  ungroup() %>% 
  mutate(percent = value/sum(value)) %>%
  select(label = i, value, percent)
}