2019년 8월 8일 목요일

Chp13. 데이터 전처리

목적
"데이터에 순서를 부여하기"
R에서 제공하는 도구나 수동으로 데이터를 조작하는방법

본론
"백업"
-->데이터 전처리 전에 원본 데이터의 백업은 필수로 진행한뒤에 해야한다
"정규표현식 - Regular Expression"
데이터 분석가는 실제 데이터 분석보다 데이터 전처리에 많은 시간이 소요된다 R이나 스프레드 시틀ㄹ 이용해 데이터 전처리를 해보자
Chp-13.zip의 hfda_ch13_raw_data_kr.csv 로 작업을 진행하며 이때 hfda_ch13_raw_data_kr_work.csv를 만든다





데이터 탭->"텍스트 나누기"



엑셀 구분기호로 분리됨" 표시



기타 에 #으로 기호 지정



결과로 생성됨 , h1 에 "새이름" 을 적고 h2에 =SUBSTITUTE(B2,"^"," ")를 적고 열의 끝까지 적용한다
-->Substitute(참조셀,바꾸는 text,대체 text)




하지만 성부분의 (ID~) 부분은 EXCEL 로 조정하기에 매우 힘들기때문에 R에서 조작한다

R에서 getwd() 명령어로 r에서 사용하는 디렉토리를 찾아서 해당 디렉토리에 csv 파일을 넣는다


데이터를 디렉토리에 넣고 head 명령어로 불러서 내용을 확인한다
hfhh <- read.csv("hfda_ch13_raw_data_kr_work2.csv",head=TRUE)
head(hfhh)



데이터 호출이 완료되면 다음 정규표현식을 사용한다
NewLastName <- sub("\\(.*\\)","",hfhh$성)
--> \\( = 이스케이프 문자로 (가 "문자 자체임을 표시
--> .* = .은 임의의 문자 *은 임의의 개수만큼 있을수있다
--> \\) = 이스케이프 문자표시

결과확인
head(NewLastName)




> hfhh$성 <- NULL
> hfhh["성"] <- NewLastName
-->새로운 정보 저장

> write.csv(hfhh, file="hfhh.csv")
-->hfhh.csv 파일로 새로 저장




데이터 정렬
hfhhSorted <- hfhh[order(hfhh$PersonID), ]
-->hfhhSorted 객체를 생성해서 그 뒤에 hfhh 의 PersonID 행에 정렬을 건다

head(hfhhSorted, n=50)
-->정렬된 내용의 앞부분 50개만 표시



데이터 중복제거
엑셀에서는 중복제거 버튼으로 한다



> hfhhNamesOnly <-hfhhSorted
-->새로운 object 생성

> hfhhNamesOnly$CallID <- NULL
> hfhhNamesOnly$시간 <-NULL
-->시간,callid column삭제

> hfhhNamesOnly <- unique(hfhhNamesOnly)
-->중복제거

> head(hfhhNamesOnly, n=50)
상황 확인



> write.csv (hfhhNamesOnly, file="hfhhNamesOnly.csv")
-->새로운 이름으로 저장

댓글 없음:

댓글 쓰기