2017-11-30 7 views
1

데이터 프레임의 각 문자 colname에 대한 백분율을 계산하려고하지만 비율이 좋지 않습니다.dplyr에 의해 그룹과 백분율을 계산하십시오.

내 코드 :

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) 
} 

결과 : 비율이 468분의 415 * 100 첫 번째 라인에 대한 일반적

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

.

문제를 어떻게 해결할 수 있습니까?

도움 주셔서 감사합니다. 여기

답변

0

, 우리는

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

고마워요 :) 즉 전체 '값'열 sum를 얻을 수 ungroup해야합니다. 나는이 fonction을 몰랐다. – Bourg