R 집단별 요약

2024. 8. 13. 13:03R Python GIS

데이터를 집단별로 요약하는 데 쓰이는 함수로는 group_by, filter, mutate, summarize, arrange가 있다.

-   group_by: 데이터를 하나 이상의 변수로 그룹화한다. 이 함수는 주로 `summarize` 함수와 함께 사용되며, 그룹별로 요약 통계를 계산할 때 유용하하다.
-   filter: 데이터프레임에서 특정 조건을 만족하는 행만을 선택한다. 여러 조건을 논리 연산자를 이용해 결합할수도 있다.
-   mutate: 데이터 프레임에 새로운 변수를 추가할 수 있다. 새로운 변수는 기존 변수들을 기반으로 계산될 수 있다.
-   summarize: `group_by` 함수와 함께 사용하여 그룹별로 요약 통계를 생성할 수 있다.
-   arrage: 데이터를 오름차순이나 내림차순으로 정렬한다.

 

데이터 요약을 실습하기 위해서는 ggplot2에 내장된 mpg 데이터를 사용한다. mpg는 1999년과 2008년에 미국 EPA에서 조사하여 발표한 자동차 주요 모델별 연비 데이터이다. 데이터는 234 개의 행과 11개 변수로 이루어져 있으며, 변수들은 다음과 같다.

-   manufacturer: 자동차 제조사
-   model: 자동차 모델명
-   displ: 자동차 배기량
-   year: 제조년도
-   cyl: 엔진 실린더 수
-   trans: 자동차 트랜스미션 종류
-   drv: 자동차 구동 방식. f=전륜구동, r=후륜구동, 4=사륜구동
-   cty: 도심 연비 (마일/갤론)
-   hwy: 고속도로 연비 (마일/갤론)
-   fl: 연료 종류
-   class: 자동차 분류


mpg 데이터를 사용하여 위의 주요 함수들을 사용한 예시는 아래와 같다.

library(ggplot2)
library(dplyr)
head(mpg)

 

중형차 제조사별 종합 연비 비교

mpg %>%
  #제조사별로 그룹화
  group_by(manufacturer) %>%
  #중형차 행만 골라낸다
  filter(class == "midsize") %>%
  #total이라는 새로운 행을 만든다.
  mutate(total = (cty+hwy)/2) %>%
  #total 행의 평균을 구한 요약 행을 그룹별로 만든다
  summarize(mean_total = mean(total)) %>%
  arrange(desc(mean_total))

차종별 도시 연비 비교

mpg %>%
  #클래스별로 그룹화
  group_by(class) %>%
  #도시 연비의 평균을 그룹별로 요약
  summarize(mean_cty = mean(cty)) %>%
  arrange(desc(mean_cty))

고속도로 연비 TOP 3 소형/준중형/중형 제조사

mpg %>%
  #제조사별로 그룹화
  group_by(manufacturer) %>%
  #소형/준중형/중형차 행만 남긴다다
  filter(class=="compact"|class=="subcompact"|class=="midsize") %>%
  #그룹의 요약을 고속도로 연비의 평균으로 한다.
  summarize(mean_hwy = mean(hwy)) %>%
  arrange(desc(mean_hwy))