머신러닝 03. 탐색적 데이터분석: 기술통계분석(EDA)과 데이터 전처리2
Written on October 22nd , 2019 by MJ 목차
008
—————코딩——————————————————————————————————
1. 파생변수
- 요약변수: 상품 구매 다양성 같은 변수. 어떤 물건을 많이 사는지 분석해서 만든 변수
- 파생변수: 없는 변수인데 가공해서 만든 변수
(1) 새 컬럼 만들기: $ / dplyr::mutate()
데이터셋 옆에 $놓고 새 컬럼 붙이기
data(diamonds)
diamonds$ppc <- diamonds$price / diamonds$carat # 파생변수 추가!
diamonds
dplyr::mutate() 함수 이용하기
diamonds <- mutate(diamonds, ppc2 = price/carat) # 파생변수 추가!
diamonds
diamonds %<>% mutate(ppc3 = price/carat) # 양방향 파이프연산자로 파생변수 추가!
diamonds
- %<>% : 양방향/할당 파이프 연산자
- 파이프 타고 게속 오른쪽으로 작업을 하고 나서 마지막 작업 한 후
- 제일 왼쪽 데이터셋을 업데이트 한다.
- %>%는 단방향 파이프 연산자: 제일 왼쪽에 준 데이터셋 쓰고 파이프 타고 오른쪽으로 계속 연결된다.
(2) 연속변수의 구간별로 범주 지정한 새 컬럼 생성: $ / cut()
data("diamonds")
dd <- select(diamonds, carat, cut) # carat: 연속 변수, cut: 범주형 변수
dd
summary(dd$carat)
dd$cr.grd[dd$carat <= 1.0] <- "low" # cr.grd 라는 새 컬럼을 만듦 # 데이터는 carat <= 1.0인 값들에 대해 low라는 항목으로 채움
dd$cr.grd[dd$carat > 1.0 & dd$carat <=3.0] <- "middle"
dd$cr.grd[dd$carat > 3.0] <- "high"
dd # 추가된 파생변수 확인
- 위에서 $ 계속 쓰는게 귀찮으면 base {cut} 함수 이용해서 변수 리코딩할 수 있다.
- break: 컷팅 기준 (Inf: +무한대/-Inf: -무한대)
- right = TRUE: <=. 오른쪽을 구간에 포함시킴
- right = FALSE: <. 오른쪽을 구간에 포함 안 시킴
- include.lowest = FALSE: 낮은 쪽의 구간을 포함 안 시킴 1< 이고 3< 이런 식
data("diamonds")
dd$cr.grd2 <- cut(dd$carat, breaks = c(-Inf, 1, 3, Inf), # 1보다 작은 경우 / 1~3 사이 / 3보다 큰 경우
include.lowest = FALSE, # x / 1<x / 3<x 으로 나눔 (낮은쪽의 구간을 포함 안 시킴)
right = TRUE, # x<=1 / 1<x<=3 / 3<x 으로 나눔
labels = c("low", "middle", "high"))
dd # 변경 내용 확인
자유롭게 공유하세요!