[R] Error in plot.window(...) : 유한한 값들만이 'xlim'에 사용될 수 있습니다

해당 포스트는 R에서 날짜 데이터를 이용하여 시각화 하는 과정에서 데이터 형식이 맞지 않아 발생하는 에러 해결 방법에 대해 소개합니다.

error-you-must-use-only-unlimited-value-on-x-axis-in-r

INTRO

R에는 다양한 데이터 형식(Data Type)이 존재합니다. 특히, 날짜 데이터의 경우, 임의로 텍스트 형식으로 처리하는 경우가 종종 있지만, 모든 데이터는 본래에 형식에 맞게 데이터 형식(Data Type)을 맞춰준 뒤 처리하는 것이 좋습니다.

아래에서는 날짜 데이터를 다루는 과정에서 데이터 타입을 맞추지 않고 시각화 하려 했을 때 발생하는 에러를 해결하는 과정을 설명합니다.

error-you-must-use-only-unlimited-value-on-x-axis-in-r

문제 해결하기

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)

error-you-must-use-only-unlimited-value-on-x-axis-in-r

마무리

이번 포스트에서는 데이터 형식을 제대로 맞추지 않은 상태에서 시각화를 하려할 때, 발생할 수 있는 한가지 사례의 해결 방법을 설명하였습니다. R은 프로그래밍 언어이기에 작은 실수로도 다양한 에러가 발생할 수 있으니, 검색을 통해 빠르게 원인을 파악하고 해결해 나가는 연습을 하신다면 후에 많은 도움이 될 것이라 생각합니다.


관련 링크

[1] [R] 에러: 예기치 않은 ',' 입니다. (Error: unexpected ',')
[2] [R] 에러: 예상하지 못한 기호(symbol)입니다. (Error: unexpected symbol)
[3] [R] "cannot open file 'c:/Users/???/test.R'" : Invalid argument