R 데이터 변환 정리글

반응형
    반응형

    데이터 변환이란?

    빅데이터 분석과정 중에서 데이터 변환은 정제된 데이터를 분석 목적에 맞게 만드는 과정을 말합니다. 그래서 데이터 변환 단계에서는 변수를 생성하거나 데이터 선택해 필요없는 데이터는 정리하면서 데이터 차원을 축소하는 작업을 하게 됩니다.

    R을 통해서 데이터 변환 작업을 어떻게 하는지 알아보도록 하겠습니다.

    데이터 타입변경

    데이터의 타입 정리가 되어있지 않으면 머신러닝이나 딥러닝을 할때 방해가 될 수 있습니다. 반드시 타입변경을 해주어야 합니다. 데이터 타입 변경에 대한 내용은 아래 포스팅을 참고하시기 바랍니다.

     

     

     

    [R] 데이터 타입 변경하기

    R에서 데이터 타입 변경하기R에서 데이터 타입을 변경하는 방법입니다. 데이터 분석 과정에서 데이터 타입을 올바르게 지정하는 것은 매우 중요합니다. 데이터 타입이 올바르지 않으면 원하는

    seong6496.tistory.com

     

    변수 생성

    새로운 변수를 생성하거나 기존 변수를 변형합니다. 예를 들어, 변수를 생성하는 경우는 대체적으로 이런 경우가 될 수 있습니다.

    1) 비만지수(BMI)가 필요한데 데이터에는 키와 몸무게만 있는 경우
    2) 날짜중에 연도나 날짜를 따로 추출해야하는 경우
    3) 통계적 접근을 위해 평균, 표준편차, z-score가 필요한 경우
    더 많이 있지만 세가지로만 축약합니다.

    # 예제 1
    
    data <- data.frame(
      height_cm = c(170, 180, 160), # 키 (cm)
      weight_kg = c(70, 80, 60)     # 몸무게 (kg)
    )
    
    # BMI 계산
    data$height_m <- data$height_cm / 100
    data$BMI <- data$weight_kg / (data$height_m^2)
    
    # 예제 2
    # 패키지 설치 및 로드
    install.packages("lubridate")
    library(lubridate)
    
    data <- data.frame(
      date = as.Date(c('2023-07-31', '2024-01-01', '2025-12-25'))
    )
    
    # 연도 및 날짜 추출
    data$year <- year(data$date)
    data$day <- day(data$date)
    
    
    # 예제 3
    # 패키지 설치 및 로드
    install.packages("dplyr")
    library(dplyr)
    
    data <- data.frame(
      value = c(10, 20, 30, 40, 50)
    )
    
    # 평균 및 표준편차 계산
    mean_value <- mean(data$value)
    sd_value <- sd(data$value)
    
    # Z-점수 계산
    data <- data %>%
      mutate(z_score = (value - mean_value) / sd_value)

    데이터 스케일링

    데이터 스케일링은 변수의 단위를 맙추는 과정입니다. kg과 g는 다른데 숫자상으로 똑같이 만들어버리면 컴퓨터에서는 진짜 똑같은 데이터라고 생각하게 됩니다. 또는, 어떤 숫자는 100만단위이고 어떤 것은 1만 단위라면 서로 비교조차 할 수가 없게 됩니다. 이런 경우 아예 머신러닝 학습이 되지 않습니다. 그에 맞는 스케일링을 해주어야 합니다.

    이런 과정을 표준화라고 하는데 R에서는 scale()함수를 통해 데이터를 표준화할 수 있습니다.

    scaled_data <- scale(data$A, center = TRUE, scale = TRUE)

    데이터 필터링 및 정렬

    보다 효율적인 데이터 사용을 위해서 데이터 필터와 정렬을 합니다. 데이터 필터는 기준에 부합한 데이터만 선택하는 것이고 데이터 정렬은 기준에 부합하게 정렬하는 것을 말합니다.

    # 조건에 맞는 행 필터링
    filtered_data <- data %>%
      filter(A > 2)
    
    # 열 A를 기준으로 정렬
    sorted_data <- data %>%
      arrange(A)

    중복 데이터 처리

    중복 데이터로 인해 모델 성능이 저하되거나 불필요한 영향을 줄 수 있습니다. 중복데이터를 확인하고 제거하도록 합니다.

    # 중복된 행 확인
    duplicates <- data[duplicated(data), ]
    
    # 중복된 행 제거
    unique_data <- data[!duplicated(data), ]

    범주형 데이터 다루기

    범주형 데이터는 팩터(factor)로써 처리합니다. 머신러닝 프로젝트를 진행할 때 라벨링 작업은 엄청난 노가다 작업이 됩니다. factor를 이용하면 라벨링 작업을 효율적으로 할 수 있습니다.

    data$B <- factor(data$B, levels = c("a", "c", "d", "e", "missing"))

    열 B를 팩터로 변환하고, 각 범주에 레벨을 지정해보았습니다.

    마치며

    주요 데이터 변환에 대해 알아보았습니다. 데이터를 깨끗하고 분석하기 쉬운 형태로 만들수록 모델 성능이 좋아지니 귀찮더라도 반드시 해야하는 단계입니다. 이번 포스팅에서는 대략적인 내용만 다루었고 자세한 내용은 내용이 정리되는대로 추가하겠습니다.

     

    함께 보면 좋은 글

     

     

    R studio 패키지 설치 오류 모음

    R은 패키지 설치가 너무 어렵다R은 깔끔하게 코드를 작성할 수 있어 좋은데 호환성이 너무 안좋습니다. 조금만 엇나가면 바로 안됩니다. 힘드네요. 특히 패키지 설치로 애를 아주 많이 먹었습니

    seong6496.tistory.com

     

     

    R로 데이터 불러오기와 저장하기

    R로 데이터 불러오기와 저장하기이번 포스팅에서는 R을 사용해 데이터를 불러오고 저장하는 방법에 대해 이야기해보려고 합니다. 데이터 분석의 첫 걸음은 데이터를 준비하는 것에서 시작하죠.

    seong6496.tistory.com

     

     

    [R] 결측치 처리

    R 결측치 처리데이터 분석에서 중요한 단계 중 하나인 데이터 정제 및 전처리에 대해 얘기해보려고 합니다. 데이터 정제는 원데이터를 분석하기 쉬운 데이터로 만드는 과정으로, 데이터의 품질

    seong6496.tistory.com

     

    댓글

    Designed by JB FACTORY

    ....