데이터 처리

머신러닝 또는 데이터 마이닝 등의 프로젝트에서 모델을 만드는데 소용되는 시간은 전체 프로젝트의 14%정도이며,
그 중 데이터 전 처리 단계의 소요시간은 다른 단계들에서의 소요시간보다 큰 경우가 많은 작업이다.

  1. 파일 입출력
    일반적인 text 파일을 읽거나 쓴다.

    data = read.table("~.csv", header=TRUE, sep=",",stringsAsFactors=FALSE,comment.char="#",fileEncoding="UTF-8",encoding="CP949")

    ~.csv파일을 읽어 data.frame형태로 저장
    header : TURE이면 헤더 정보 있음
    sep : 필드 구분자를 지정. default필드 구분자는 blank
    stringsASFactor : TRUE이면 문자열을 FACTOR 형태로 저장
    comment.char : 주석의 시작 문자 지정
    fileEncoding : 파일의 인코딩
    encoding : R의 인코딩


    write.table(data,file="~.csv", append=FALSE, quote=TRUE, sep=",", row.names=TRUE)

    data 변수에 저장된 데이터를 ~.csv파일로 저장
    quote : TRUE, 필드의 값을 , 으로 묶음
    sep : 필드의 구분자를 지정. Default 필드 구분자는 blank
    row.names : TURE, 각 행의 이름도 저장


  2. CSV 파일 읽기
    CSV 파일을 읽으려면 read.csv()를 사용한다.
    이 함수는 파일명과 첫째 행이 header인지를 구분하기 위한 파라미터를 받는다.
    read.csv(파일명,header=TRUE)와 같은 형식으로 호출

    처음부터 문자열을 Factor가 아닌 문자열 타입으로 읽어 들이도록 하려면 stringsAsFactors=TRUE를 지정
    나중에 변경하기 위해서 x$name = as.character (x$name)

    na.strings
    NA를 지정하는 문자열을 지정, 디폴트는 NA, 다른 문자열로 NA가 지정되었을 경우 모두 문자열로 반환
    na.strings='NIL'

    1.csv의 내용


  3. 엑셀 파일 읽기 
    xlsx 패키지를 install하여야 한다. library(xlsx)하여 패키지를 불러온다.

    read.xlsx("이름","sheet")이다.

  4. APPLY 함수
    R에서는 다양한 벡터 또는 행렬데이터에 임의의 함수를 적용한 결과를 얻기 위한 apply류의 함수들이 있다. 이들 함수는 벡터, 행렬, 리스트, 데이터프레임에 적용할 함수를 명시하는 형태로, 함수형 언어 스타일에 가깝다. apply,lapply,sapply,tapply,mapply등이 있다.

    APPLY함수 : 행렬의 행또는 열방향으로 특정함수를 적용하며 apply(행렬, 방향, 함수)형태로 호출한다.
    '방향'은 1이면 행 2이면 열이다.



    LAPPLY함수 : 인자로 리스트를 받을 수 있다.





  5. DPLYR패키지
    데이터처리에 특화되어 있는 R 패키지
    데이터사전처리작업을 위해 다음과 같은 기능을 제공
    -Filtering(데이터 추출)
    -Selecting columns(변수선택)
    -Adding new variables(변수추가)
    -Sorting(정렬)
    -Aggregating(집계)


    dplyr의 장점은 처리 속도 뿐만 아니라 가독성이 좋다. 체인(%>%)이라는 것을 이용해 데이터가 어떠한 처리의 흐름을 갖는지 파악하기 쉽게하였다. 그렇기 때문에 내가 만든 처리 구문을 타인에게 전달할 때도 큰 장점을 갖는다.


    filter: 조건 추출




    select: 변수 선택




    mutate : 변수 추가



    arrange : 정렬



    group_by, summarise : 집계
    데이터를 정렬한 뒤, 그룹별 요약 결과 보기

    chain 
     - 여러 명령을 연결해 한 번에 수행할 수 있도록 하는 기능
     - 연결기능은 %>%로 이루어짐.

    데이터 프레임 조작(subset,transform,split)
    데이터 프레임은 가장 보편적으로 사용하는 형태의 데이터타입이다. 

    subset() : 함수를 사용해서 원래 데이터프레임과 선택조건을 주어 조건을 만족하는 일부데이터만 선택할 수 있다.

    transform : 기존 데이터들의 연산 결과를 새로운 열 데이터로 생성하여 기존 데이터프레임에 추가하거나 다른 이름의 데이터프레임으로 저장할 수 있다.

    split : 2번째 인자를 그룹요인(grouping factor)으로 하여 1번째 인자 데이터를 그룹화한 목록으로 생성한다.


'Develop > R' 카테고리의 다른 글

R을 활용한 데이터 시각화  (0) 2018.01.09
R을 활용하여 데이터 처리하기  (0) 2018.01.08
R의 DataType이해  (0) 2018.01.08
R의 기본 사용법  (0) 2018.01.08

+ Recent posts