youngwoos / Doit_R

<Do it! 쉽게 배우는 R 데이터 분석> 저장소
212 stars 438 forks source link

교재 248쪽, 250쪽 공통 질문 #61

Closed won0c closed 2 years ago

won0c commented 2 years ago

교재 248쪽과 250쪽에 나오는 코드 관련입니다.

count()함수가 집단별 빈도를 구할 수 있는데, 다시 group_by 함수를 지정하는 이유는 왜일까요? 즉, count(religion, group_marriage)로 해서 각 그룹을 지정했는데, group_by(religion)으로 작성하는 이유를 모르겠습니다. group_by(religion, group_marraiage)로 수정해서 실행하니 값이 다르게 나오더군요.

교재에서는 이에 대한 자세한 설명이 없이, 그냥 코드대로 하면 group_by와 summarize를 사용하는 방식과 동일하다고만 하니까 이해가 잘 되지 않습니다..

제 생각에는 group_by(religion)을 삭제해도 group_by와 summarize를 사용하는 방식과 동일하게 결과가 나오야 할거 같거든요.

youngwoos commented 2 years ago

count()를 이용해 빈도를 구하면 그룹 정보가 유지되지 않습니다. 따라서 바로 mutate()를 이용해 비율을 구하면 모든 개별 집단별 비율을 구하게 됩니다. 목표하는 하위 집단별로 비율을 구하려면 group_by()를 이용해야 합니다. 아래 두 코드의 실행 결과를 비교해보시겠어요?

mpg %>% count(drv, class) %>% mutate(ratio = n/sum(n)*100)

mpg %>% count(drv, class) %>% group_by(drv) %>% mutate(ratio = n/sum(n)*100)

image

궁금한 사항이 있으시면 아래 데이터 분석 커뮤니티에 질문을 올려주세요. 보다 빨리 답변을 받아보실 수 있습니다.

데이터 분석 커뮤니티 https://www.facebook.com/groups/datacommunity/

감사합니다.