해당 포스트는 R에서 날짜 데이터를 이용하여 시각화하는 과정에서 데이터 형식이 맞지 않아 발생하는 에러 해결 방법에 대해 소개합니다.
INTRO
R에는 다양한 데이터 형식(Data Type)이 존재합니다. 특히, 날짜 데이터의 경우, 임의로 텍스트 형식으로 처리하는 경우가 종종 있지만, 모든 데이터는 본래에 형식에 맞게 데이터 형식(Data Type)을 맞춰준 뒤 처리하는 것이 좋습니다.
아래에서는 날짜 데이터를 다루는 과정에서 데이터 타입을 맞추지 않고 시각화하려 했을 때 발생하는 에러를 해결하는 과정을 설명합니다.
문제 해결하기
1. 데이터 생성
먼저, 상황 재현을 위해 날짜 데이터(date
)와 온도(temp
)가 들어있는 데이터 프레임(Data frame) mydata
를 생성해 보겠습니다.
mydata <- data.frame(
date = c(
'2022-09-22',
'2022-09-23',
'2022-09-24',
'2022-09-25',
'2022-09-26'
),
temp = c(17, 18, 18, 19, 20)
)
mydata
date temp
1 2022-09-22 17
2 2022-09-23 18
3 2022-09-24 18
4 2022-09-25 19
5 2022-09-26 20
2. 데이터 시각화 (에러)
위 데이터로 시각화(plot()
)를 시도해보니 아래와 같이 *"유한한 값들만이 'xlim'에 사용될 수 있습니다"*라는 문구와 함께 에러가 발생합니다.
plot(x = mydata$date, y = mydata$temp)
Error in plot.window(...) : 유한한 값들만이 'xlim'에 사용될 수 있습니다
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
str()
로 데이터를 살펴보니 날짜 데이터(date
)의 형식이 문자(character)로 들어있는 것을 볼 수 있습니다.
str(mydata)
'data.frame': 5 obs. of 2 variables:
$ date: chr "2022-09-22" "2022-09-23" "2022-09-24" "2022-09-25" ...
$ temp: num 17 18 18 19 20
3. 데이터 타입 변환
날짜 데이터가 들어있는 date
컬럼의 형식을 as.Date()
함수를 이용해 변환하고 다시 시각화를 진행해 보겠습니다.
mydata$date <- as.Date(mydata$date)
mydata
date temp
1 2022-09-22 17
2 2022-09-23 18
3 2022-09-24 18
4 2022-09-25 19
5 2022-09-26 20
변환 후 출력한 결과는 기존과 동일한 것을 볼 수 있습니다. 변환이 제대로 되었는지 str()
함수로 확인해 보겠습니다.
str(mydata)
'data.frame': 5 obs. of 2 variables:
$ date: Date, format: "2022-09-22" "2022-09-23" "2022-09-24" "2022-09-25" ...
$ temp: num 17 18 18 19 20
출력 결과를 보면 date
컬럼의 타입이 문자(Character)에서 날짜(Date)로 변경된 것을 볼 수 있습니다.
4. 데이터 시각화 (정상)
위에서 사용한 시각화 코드를 다시 실행해 보면, 아래와 같이 정상적으로 시각화되는 것을 볼 수 있습니다.
plot(x = mydata$date, y = mydata$temp)
마무리
이번 포스트에서는 데이터 형식을 제대로 맞추지 않은 상태에서 시각화를 하려할 때, 발생할 수 있는 한 가지 사례의 해결 방법을 설명하였습니다. R은 프로그래밍 언어이기에 작은 실수로도 다양한 에러가 발생할 수 있으니, 검색을 통해 빠르게 원인을 파악하고 해결해 나가는 연습을 하신다면 후에 많은 도움이 될 것이라 생각합니다.
관련 링크
[1] [R] 에러: 예기치 않은 ',' 입니다. (Error: unexpected ',')
[2] [R] 에러: 예상하지 못한 기호(symbol)입니다. (Error: unexpected symbol)
[3] [R] "cannot open file 'c:/Users/???/test.R'" : Invalid argument