본문 바로가기

R데이터전처리

[R-전처리] 데이터 집계 함수(dplyr group_by 그룹별 요약통계)

Raw data 상의 데이터 레코드를 좀 더 큰 단위로 변환하여 요약통계를 산출해야하는 일은 데이터 탐색 또는 의사결정에서 중요하다.

 

 

 

< 실습 데이터 >

2020-03-20 기준, 한국 영화 역대 박스오피스200 데이터

 

boxoffice_202003.csv
0.01MB

 

movie <- read.csv("C:\\Users\\user\\Desktop\\data\\boxoffice_202003.csv", 
                      header=T, stringsAsFactor=F)

str(movie)
View(movie)

 

 

 

 

< group_by 대표값 >

대표값이라고 하면, 서로 다른 데이터 셋을 비교하는데 있어서 비교 가능한 하나의 대표값을 말한다. 

주로 평균을 많이 사용하지만 최대, 최소값, 중앙값, 백분위도 많이 사용하는 대표값이다.

 

dplyr 패키지에서 최대값은 max 함수, 최소값은 min 함수, 평균값은 mean 함수, 중앙값은 median 함수, 백분위는 quantile 함수로 구현한다.

 

library(dplyr)

movie %>%
  group_by(대표국적) %>%
  summarise(max = max(매출액),
            min = min(매출액),
            avg = mean(매출액),
            med = median(매출액),
            per20 = quantile(매출액, 0.25)) %>%   #1사분위수
  View()

 

 

 

그룹별로 집계해서 대표값을 산출하지 않고 그냥 계산할 때는

summary(데이터명) 으로 자동 계산 할 수 있다.

 

summary(movie)

 

 

 

 

 

< group_by 분포 계산 >

분산은 var 함수, 표준편차는 sd 함수로 계산할 수 있다.

분산이나 표준편차는 데이터가 한 건이면 NA값이 되는데 그것을 방지하려면 coalesce(숫자, 0) 를 이용해 0으로 바꿔준다.

 

options(scipen=999) # E+05, E-05와 같이 지수표기 방지

movie %>%
  group_by(대표국적) %>%
  summarise(var = coalesce(var(관객수), 0),
            sd = coalesce(sd(관객수), 0)) %>%
  View()