일관성

R로 데이터 정리하기

Maggie Matsui

Content Developer @ DataCamp

일관성

  • 서로 다른 단위·형식
    • 온도: °C vs. °F
    • 무게: kg vs. g vs. lb
    • 통화: USD $ vs. GBP £ vs. JPY ¥
    • 날짜: DD-MM-YYYY vs. MM-DD-YYYY vs. YYYY-MM-DD
R로 데이터 정리하기

일관성 문제는 어디서 오나요?

왼쪽: 여러 데이터베이스에서 하나의 데이터 테이블로 화살표가 모여 다중 데이터 출처를 표현. 오른쪽: 커서가 있는 자유 입력 상자와 키보드가 연결된 컴퓨터로 데이터 입력 오류를 표현.

R로 데이터 정리하기

일관성 문제 찾기

head(nyc_temps)
         date temp
1  2019-04-01  4.2
2  2019-04-02  7.5
3  2019-04-03 12.2
4  2019-04-04 11.1
5  2019-04-05 41.5
6  2019-04-06 11.9
R로 데이터 정리하기

일관성 문제 찾기

library(ggplot2)
ggplot(nyc_temps, aes(x = date, y = temp)) +
  geom_point()

코드로 생성한 플롯. 다른 값보다 훨씬 큰 온도가 세 개 보입니다.

R로 데이터 정리하기

어떻게 할까요?

  • 단 하나의 정답은 없습니다. 데이터에 따라 다릅니다!
  • 데이터 출처를 파악하십시오

코드로 생성한 플롯. 다른 값보다 훨씬 큰 온도가 세 개 보입니다.

  • 4월 7일, 16일, 23일 데이터는 외부 출처이며 °F로 측정되었습니다
R로 데이터 정리하기

단위 변환

$$\text{C} = (\text{F} - 32) \times \frac{5}{9}$$

ifelse(condition, value_if_true, value_if_false)

nyc_temps %>%
  mutate(temp_c = ifelse(temp > 50, (temp - 32) * 5 / 9, temp))
         date temp   temp_c
1  2019-04-01  4.2  4.20000
...
7  2019-04-07 58.5 14.72222
...
R로 데이터 정리하기

단위 변환

nyc_temps %>%
  mutate(temp_c = ifelse(temp > 50, (temp - 32) * 5 / 9, temp)) %>%
  ggplot(aes(x = date, y = temp_c)) +
    geom_point()

코드로 생성한 플롯. 변환 후 명확한 이상치는 없습니다.

R로 데이터 정리하기

날짜 일관성

nyc_temps
             date temp_c
1      2019-11-23   5.12
2        01/15/19  -0.67
3  April 24, 2019  17.46
4        08/30/19  26.46
5 October 3, 2019  14.63
6      2019-03-17   3.47

 

날짜 문자열 Date 형식
"2019-11-23" "%Y-%m-%d"
"01/15/19" "%m/%d/%y"
"April 24, 2019" "%B %d, %Y"

 

R 콘솔에서 ?strptime 확인

R로 데이터 정리하기

여러 형식 파싱

library(lubridate)
parse_date_time(nyc_temps$date,
                orders = c("%Y-%m-%d", "%m/%d/%y", "%B %d, %Y"))
"2019-11-23 UTC" "2019-01-15 UTC" "2019-04-24 UTC" "2019-08-30 UTC"
"2019-10-03 UTC" "2019-03-17 UTC"
parse_date_time("Monday, January 3",
                orders = c("%Y-%m-%d", "%m/%d/%y", "%B %d, %Y"))
NA
R로 데이터 정리하기

애매한 날짜

02/04/2019은 2월인가요, 4월인가요?

  • 데이터에 따라 다릅니다.

 

선택지:

  • 결측으로 처리
  • 여러 출처라면, 출처별 규칙으로 추정
  • 같은 데이터셋의 다른 값으로 추정
R로 데이터 정리하기

연습해봅시다!

R로 데이터 정리하기

Preparing Video For Download...