Language/R

[R] 데이터 전처리: mutate, group_by, summarise 함수

Jonnie 2021. 10. 10. 05:45

mutate 함수

  • 기존 변수를 활용하여 새로운 변수를 만들 때 사용
  • ifelse 함수와 함께 사용되기도 함

11. 파생변수 sum(통합연비: 도심연비와 고속도로연비 합산)을 만드시오.

mpg <- mpg %>% mutate(sum = city + highway)

12. 통합연비의 평균은 얼마인가?

mean(mpg$sum)

13. 파생변수 avg(평균연비: 도심연비와 고속도로연비 평균)를 만들고, 평균 연비가 가장 높은 자동차 모델 세 개가 무엇인지 확인하시오.

mpg <- mpg %>% mutate(avg = (city + highway)/2) 
mpg %>% arrange(-avg) %>% head(3)

#교수님 코드 (위 코드 합친 ver)
mpg <- mpg %>% mutate(avg = (city + highway)/2) %>% arrange(-avg) %>% head(3)

group_by 함수

  • 사례를 어떤 변수값의 결과를 기준으로 몇 개의 집단으로 구분
    • 변수의 척도는 문자형 또는 범주형인 것이 좋음

summarise 함수

  • 어떤 변수의 기술통계량에 대한 요약 결과를 보여줄 때 사용
    • 기술통계량과 함께 빈도수 보여줄 수 있음
  • 일반적으로 group_by 함수와 함께 사용
    • 사례를 집단으로 구분 후, 구분된 집단 별로 관심있는 변수의 기술통계량 제시

14. 자동차 모델을 제조사별, 구동방식별로 구분한 후, 도심연비평균과 고속도로연비평균 요약 결과를 제시하시오.

#내 코드
mpg %>% group_by(manufacturer, trans) %>% summarise(city, highway)

#교수님 코드
mpg %>% group_by(manufacturer, drv) %>% summarise(mean(city), mean(highway)) %>% print(n=100)

15. 자동차 모델을 제조사별로 구분한 후, suv 모델에 대해 통합 연비 평균 상위 3개 모델을 구하시오.

  • Hint 1: group_by와 summarise 함수 사이에 다른 dplyr 함수가 들어갈 수 있음
  • Hint 2: 상위 몇 개 업체를 제시하라고 하면 arrange 함수와 head 함수를 함께 사용
mpg %>% group_by(manufacturer) %>% filter(class=="suv") %>% summarise(mean_sum = mean(sum)) %>% arrange(-mean_sum) %>% head(3)

16. 평균 배기량이 가장 높은 세 개 변속기를 제시하시오.

mpg %>% group_by(trans) %>% summarise(mean_displ = mean(displ)) %>% arrange(-mean_displ) %>% head(3)

17. 4기통 모델을 가장 많이 생산하는 업체 세 곳을 순서대로 구하시오.

  • Hint: summarise의 내용만 다를 뿐, 문제 15와 유사함
mpg %>% group_by(manufacturer) %>% filter(cyl == 4) %>% summarise(count = n()) %>% arrange(-count) %>% head(3)