R 데이터 가공하기
데이터 전처리
원하는 형태로 데이터 가공하기
- 데이터 전처리(Preprocessing) - dplyr 패키지
| 함수 | 기능 |
|---|---|
| filter() | 행 추출 |
| select() | 열(변수) 추출 |
| arrange() | 정렬 |
| mutate() | 변수 추가 |
| summarise() | 통계치 산출 |
| group_by() | 집단별로 나누기 |
| left_join() | 데이터 합치기(열) |
| bind_rows() | 데이터 합치기(행) |
조건에 맞는 데이터만 추출하기 (행)
1 | library(dplyr) |
1 | ''' 추출한 행으로 데이터 만들기 ''' |
- R에서 사용하는 기호들
| 논리연산자 | 기능 |
|---|---|
| < | 작다 |
| <= | 작거나 같다 |
| > | 크다 |
| >= | 크거나 같다 |
| == | 같다 |
| != | 같지 않다 |
| | | 또는 |
| & | 그리고 |
| %in% | 매칭 확인 |
| 산술 연산자 | 기능 |
|---|---|
| + | 더하기 |
| - | 빼기 |
| * | 곱하기 |
| / | 나누기 |
| ^, ** | 제곱 |
| %/% | 나눗셈의 몫 |
| %% | 나눗셈의 나머지 |
실습
1 | ''' |
필요한 변수만 추출하기
1 | exam %>% select(math) |
실습
1 | ''' |
순서대로 정렬하기
1 | exam %>% arrange(math) # math 오름차순 정렬 |
실습
1 | ''' |
새로운 변수 추가하기
1 | exam %>% |
실습
1 | ''' Q1. mpg데이터 복사본을 만들고, cty와 hwy를 더한 '합산 연비 변수'를 추가하세요. ''' |
집단별로 요약하기
1 | exam %>% summarise(mean_math = mean(math)) |
- 자주 사용하는 요약통계량 함수
| 함수 | 의미 |
|---|---|
| mean() | 평균 |
| sd() | 표준편차 |
| sum() | 합계 |
| median() | 중앙값 |
| min() | 최솟값 |
| max() | 최댓값 |
| n() | 빈도 |
1 | mpg %>% |
- dplyr 조합하기
회사별로 “suv” 자동차의 도시 및 고속도로 통합 연비 평균을 구해 내림차순으로 정렬하고, 1~5위까지 출력하기
| 절차 | 기능 | dplyr 함수 |
|---|---|---|
| 1 | 회사별로 분리 | group_by() |
| 2 | suv 추출 | filter() |
| 3 | 통합 연비 변수 생성 | mutate() |
| 4 | 통합 연비 평균 산출 | summarise() |
| 5 | 내림차순 정렬 | arrange() |
| 6 | 1~5위까지 출력 | head() |
1 | mpg <- as.data.frame(ggplot2::mpg) |
실습
1 | ''' |
데이터 합치기
가로로 합치기
1 | test1 <- data.frame(id = c(1, 2, 3, 4, 5), |
세로로 합치기
1 | group_a <- data.frame(id = c(1, 2, 3, 4, 5), |
실습
- mpg 데이터의 fl변수는 자동차에 사용하는 연료(fuel)를 의미합니다. 아래는 자동차 연료별 가격을 나타낸 표입니다.
| fl | 연료 종류 | 가격(갤런당 USD) |
|---|---|---|
| c | CNG | 2.35 |
| d | diesel | 2.38 |
| e | ethanol E85 | 2.11 |
| p | premium | 2.76 |
| r | regular | 2.22 |
1 | fuel <- data.frame(fl = c("c", "d", "e", "p", "r"), |
정리하기
1 | ''' 1.조건에 맞는 데이터만 추출하기 ''' |
실습
- 미국 동북중부 437개 지역의 인구통계 정보를 담고 있는 midwest 데이터를 사용해 데이터 분석 문제를 해결해 보세요. midwest는 ggplot2패키지에 들어 있습니다.
1 | ''' |