혼공단/혼공단 8기

혼자 공부하는 R데이터분석 5장 - 데이터 가공하기

하양훈 2022. 8. 13. 14:52
반응형

05-1 dplyr 패키지

 

<dplyr 패키지>

- 기존의 plyr패키지를 C++로 개선하여 만든 데이터 처리 패키지

- 프로그래밍에 익숙하지 않아도 함수를 쉽고 빠르게 사용할 수 있다.

 

[dplyr 패키지 설치 및 로드]

install.packages("dplyr")
library(dplyr)

 

 

<데이터 추출 및 정렬하기>

 

[행 추출하기 : filter() 함수]

filter() 함수는 조건에 맞는 데이터를 필터링하는 함수이다.

filter(데이터,조건문)

- &연산자를 사용하면 더 많은 조건을 지정할 수 있다.

 

 

[열 추출하기 : select() 함수]

select() 함수는 열, 즉 지정한 변수만 추출할때 사용한다.

select(데이터, 변수명1, 변수명2, ...)

 

[정렬하기 : arrange() 함수]

arrange() 함수는 데이터를 오름차순으로 정렬할때 사용합니다.

여러개의 열을 기준으로 지정할 수있으며, 내림차순으로 정렬할때는 desc() 함수를 사용합니다.

arrange(데이터, 변수명1, 변수명2, ...)              # 오름차순 정렬
arrange(데이터, 변수명1, 변수명2, ..., desc(변수명)) # 내림차순 정렬

※ 오름차순 정렬 기준

1. 숫자형 변수 : MISSING(결측치), 음수, 0, 양수

2. 문자형 변수 : 빈칸, !"#$%&'()*+-./0123456789:;⇔?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]_

 

 

<데이터 추가 및 중복데이터 제거하기>

 

[열 추가하기 : mutate() 함수]

mutate() 함수는 데이터 세트에 열을 추가할때 사용합니다.

기존 열을 가공한 후 그 결괏값을 기존 열이나 새로운 열에 할당할 수 있습니다.

mutate(데이터, 추가할 변수 이름 = 조건 1, ...)

 

[중복 값 제거하기 : distinct() 함수]

distinct() 함수는 중복 값을 제거할 때 사용합니다.

distinct(데이터, 변수명)

- 한 번에 여러 열을 지정하면 각 열에서 중복된 값이 제거되는것이 아니라 지정한 열들의 모든 값이 동일할때만 제거됩니다.

 

 

<데이터 요약 및 샘플 추출하기>

 

[데이터 전체 요약하기 : summarise() 함수]

summarise() 함수는 기술통계 함수와 함께 사용하여 데이터 요약을 확인할때 사용합니다.

summarise(데이터 요약할 변수명 = 기술통계 함수)
# 요약할 변수명 = 열이름(컬럼명)

 

[그룹별로 요약하기 : group_by() 함수]

group_by() 함수는 그룹별로 데이터를 요약할때 사용합니다.

group_by(데이터, 변수명)

- n() 함수 : 데이터 개수를 구하는 함수

- n_distinct() : 중복 값을 제외한 데이터들의 개수

 

[샘플 추출 하기 : sample_n(), sample_frac() 함수]

sample_n()함수는 전체 데이터에서 샘플 데이터를 개수 기준으로 추출합니다.

sample_n(데이터, 샘플 추출할 개수)

sample_frac() 함수는 전체 데이터에서 샘플 데이터를 비율 기준으로 추출합니다.

sample_frac(데이터, 샘플 추출할 비율)

 

[파이프 연산자 : %>%]

- 파이프연산자는 연결하여 연산하는 연산자 입니다.

- 파이프 연산자를 사용하면 함수를 연달아 사용할때 함수 결과값을 변수로 저장하는 과정을 거치지 않아도 됩니다.

- 그래서 전체 코드가 간결해져 가독성이 좋아집니다.

 

 

 

05-2 데이터 가공하기

 

[데이터 가공]

- 변수를 생성하거나 변수명을 변경하고, 조건에 맞는 데이터를 추출하거나 변경하고 데이터를 정렬하고 병합하는 일련의 과정

- 데이터 전처리, 데이터 핸들링, 데이터 마트 등의 용어가 유사한 의미로 사용된다.

 

<가로결합>

left_join() 테이블 1 기준으로 테이블 2의 나머지 변수를 가로 결합
inner_join() 테이블1과 테이블2 기준으로 변수값이 동일할때만 가로 결합
full_join() 테이블1과 테이블2 기준으로 지정한 변수 값 전체를 가로 결합

 

 

 

05-3 데이터 구조 변형하기

 

[데이터 재구조화]

- 동일한 데이터라도 목적에 따라 분석 기준이 달라지며 그때마다 데이터 구조를 변형해야할때가 있습니다.

- 데이터의 재구조화에는 reshape2 패키지를 사용합니다.

 

melt() 데이터 열을 행으로 바꾼다.
acast() 데이터의 행을 열로 바꾼다(벡터,행렬,배열로 반환)
dcast() 데이터의 행을 열로 바꾼다(데이터프레임으로 반환)

 

05-4 데이터 정제하기

 

결측치 : 누락된 값, 데이터가 없는 것을 의미

이상치 : 일반적인 값보다 편차가 큰 값

데이터 정제 : 결측치나 이상치를 처리하는 과정

 

 

<결측치 확인하기>

is.na() 함수 : 결측치를 확인하여 결괏값을 TRUE, FALSE로 반환하며 결측치는 TRUE로 반환됩니다.

is.na(변수명)

table(is.na())함수 : 결측치 빈도를 확인, 결측치가 몇개 있는지 개수가 조회 된다.

table(is.na(변수명))

 

<결측치 제외하기>

na.rm=T옵션을 넣으면 된다.

예) sum()함수에서 사용할 경우

sum(x, na.rm = T)

 

 

<결측치 개수 확인하기>

sum(is.na()) 함수 : 데이터 세트에 결측치가 총 몇개인지 확인합니다.

sum(is.na(변수명))

colSums(is.na()) 함수 : 각 컬럼에 결측치가 총 몇개인지 확인합니다.

colSums(is.na(변수명))

 

 

<결측치 제거하기>

na.omit()함수 : 결측치가 있는 행 전체를 데이터 시트에서 제거한 후 데이터를 출력합니다.

na.omit(변수명)

 

<결측치 대체하기>

결측치를 제외하거나 제거할 수도 있지만, 다른값으로 대체할 수도 있습니다.

변수명[is.na(변수명)] <- 대체할 값

 

<이상치 확인 및 처리하기>

- 이상치는 상자그림을 통해 쉽게 확인할수 있다. 

- 그리고 이런 이상치는 조건문으로 쉽게 처리할수 있다.

반응형