按dplyr使用group计算百分比

按dplyr使用group计算百分比,r,dplyr,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)) %>% selec

我想计算数据帧中每个字符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)
}
for(i在名称中((sapply(creditDF,class)=“character”)){
分配%
分组单位:(.vars=i)%>%
总结(值=n(),
百分比=值/总和(值))%>%
选择(标签=i,值,百分比)
}
结果:

 label value percent
 <chr> <int>   <dbl>
1 chéquier   autorisé   415       1
2 chéquier   interdit    53       1
标签值百分比
1切基尔奥托里斯415 1
2 chéquier interdit 53 1
通常,第一行的百分比为415/468*100

我如何解决我的问题


谢谢您的帮助。

在这里,我们需要
解组
,以获得整个“值”列的
,即

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

这里,我们需要
解组
,以获得整个“值”列的
,即

--                       %>%
  group_by_at(.vars = i) %>%
  summarise(value = n() %>%
  ungroup() %>% 
  mutate(percent = value/sum(value)) %>%
  select(label = i, value, percent)
}
非常感谢:)。我不知道这个功能。非常感谢:)。我不知道这件事。