정보

    • 업무명     : 더미 변수를 만들 때 유용한 "fastDummies" 패키지

    • 작성자     : 박진만

    • 작성일     : 2020-03-03

    • 설   명      :

    • 수정이력 :

     

     내용

    [특징]

    • 더미 변수를 만들 때 유용한 "fastDummies" 패키지 소개

     

     

    [기능]

    • fastDummies 패키지 소개

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [명세]

    • 전역 설정

      • 최대 10 자리 설정

      • 메모리 해제

    # Set Option
    options(digits = 10)
    memory.limit(size = 9999999999999)

     

    • 라이브러리 읽기

    # Library Load
    library(fastDummies)

     

    • Data Frame 생성

      • 임의의 Data Frame 생성

    ### 임의의 데이터프레임 생성#####
    n <- 4
    TestData <- data.frame(Number = 1:n,
                           FactorNum = factor(1:n),
                           ID = paste0("ID", 1:n),
                           Group = sample(paste0("Group", 1:3), n, replace = TRUE))
    ########
    print(TestData)

     

     

    • 열에 추가적으로 dummy data 생성

    # 숫자가 아닌 모든 변수의 조합 더미 변수를 열 측에 작성 : dummy_rows 명령
    # 데이터를 지정 : .data 옵션
    # 대상 열을 지정 : select_columns -> 옵션 숫자는 제외
    # 숫자 또는 대상을 제외한 채우기 값 : dummy_value 옵션 초기 값 : NA
    dummy_rows(.data = TestData, select_columns = c("ID", "Group"),
               dummy_value = "Dummy")
    
    # Number FactorNum  ID  Group
    # 1      1         1 ID1 Group2
    # 2      2         2 ID2 Group1
    # 3      3         3 ID3 Group1
    # 4      4         4 ID4 Group2
    # 5  Dummy     Dummy ID1 Group1
    # 6  Dummy     Dummy ID4 Group1
    # 7  Dummy     Dummy ID2 Group2
    # 8  Dummy     Dummy ID3 Group2

     

     

    • 컬럼에 추가적으로 더미 데이터 생성

    # 더미 변수를 컬럼 측에 작성 : dummy_cols 명령
    # 열에있는 처음의 변수를 제외 remove_first_dummy 옵션
    dummy_cols(.data = TestData, select_columns = c("ID", "Group"),
               remove_first_dummy = FALSE)
    
    # Number FactorNum  ID  Group ID_ID1 ID_ID2 ID_ID3 ID_ID4 Group_Group2 Group_Group1
    # 1         1       ID1 Group2      1      0      0      0            1            0
    # 2         2       ID2 Group1      0      1      0      0            0            1
    # 3         3       ID3 Group1      0      0      1      0            0            1
    # 4         4       ID4 Group2      0      0      0      1            1            0

     

    [전체]

    library(fastDummies)
    
    
    ### 임의의 데이터프레임 생성#####
    n <- 4
    TestData <- data.frame(Number = 1:n,
                           FactorNum = factor(1:n),
                           ID = paste0("ID", 1:n),
                           Group = sample(paste0("Group", 1:3), n, replace = TRUE))
    ########
    print(TestData)
    
    # 숫자가 아닌 모든 변수의 조합 더미 변수를 열 측에 작성 : dummy_rows 명령
    # 데이터를 지정 : .data 옵션
    # 대상 열을 지정 : select_columns -> 옵션 숫자는 제외
    # 숫자 또는 대상을 제외한 채우기 값 : dummy_value 옵션 초기 값 : NA
    dummy_rows(.data = TestData, select_columns = c("ID", "Group"),
               dummy_value = "Dummy")
    
    # Number FactorNum  ID  Group
    # 1      1         1 ID1 Group2
    # 2      2         2 ID2 Group1
    # 3      3         3 ID3 Group1
    # 4      4         4 ID4 Group2
    # 5  Dummy     Dummy ID1 Group1
    # 6  Dummy     Dummy ID4 Group1
    # 7  Dummy     Dummy ID2 Group2
    # 8  Dummy     Dummy ID3 Group2
    
    # 더미 변수를 컬럼 측에 작성 : dummy_cols 명령
    # 열에있는 처음의 변수를 제외 remove_first_dummy 옵션
    dummy_cols(.data = TestData, select_columns = c("ID", "Group"),
               remove_first_dummy = FALSE)
    
    # Number FactorNum  ID  Group ID_ID1 ID_ID2 ID_ID3 ID_ID4 Group_Group2 Group_Group1
    # 1         1       ID1 Group2      1      0      0      0            1            0
    # 2         2       ID2 Group1      0      1      0      0            0            1
    # 3         3       ID3 Group1      0      0      1      0            0            1
    # 4         4       ID4 Group2      0      0      0      1            1            0

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기