시계열 데이터 분석 02 – ts( ) 함수

모바일에서는 화면을 회전하여 가로로 보시면 가독성이 더 좋을 수 있습니다. 돌아가서 보는 것을 추천합니다! !


ts 데이터로 변환: ts( ) 함수

이전 게시물에서 살펴본 것처럼 시계열 데이터 분석에는 ts 데이터가 필요합니다.

이번 포스팅에서는 일반적인 CSV 파일, 즉 데이터 프레임을 시계열 데이터로 변환하는 방법에 대해 알아보겠습니다. ts( ) 함수알아 보자

## 데이터프레임
head(exchange1.df)
>>

##     date exchange_rate_krw_usd
## 1 1980 1                 586.1
## 2 1980 2                 603.0
## 3 1980 3                 625.0
## 4 1980 4                 659.9
## 5 1981 1                 672.8
## 6 1981 2                 685.1

is.ts(exchange1.df)
>> ## (1) FALSE

## 클래스 확인 결과 data.frame 출력
## 이를 시계열 데이터로 바꿔줘야 함
class(exchange1.df)
>> ## (1) "data.frame"


.ts() 함수: ts(DATAFRAME$열, 시작, 주파수)

참고: 시작과 빈도만 지정되므로 오류를 방지하려면 빈 날짜를 반드시 비워두세요. 임의의 값으로 채우는 것은 분석 결과에 영향을 줄 수 있으므로 별도의 모델을 기준으로 값을 넣거나 전혀 0과 같은 값을 넣는 것이 올바른 방법입니다. 또는 NULL 값을 삽입하여 처리할 수도 있지만, 가장 안전한 방법은 별도의 모델을 사용하는 것이라고 생각합니다.

변환

## frequency = 4 -> 분기별 데이터
## frequency = 12 -> 월별 데이터
## frequency = 365 -> 일별 데이터

exchange1.ts = ts(exchange1.df$exchange_rate_krw_usd, start = c(1980,1), frequency = 4)
head(exchange1.ts, 5)
>> ## (1) 586.1 603.0 625.0 659.9 672.8

변환 결과 확인

is.ts(exchange1.ts)
>> ## (1) TRUE

주기 확인

frequency(exchange1.ts)
>> ## (1) 4

시작일 확인

start(exchange1.ts)
>> ## (1) 1980    1

종료일 확인

end(exchange1.ts)
>> ## (1) 2016    2


is.ts(oil_enter_in.R.df)

oil.ts = ts(oil_enter_in.R.df$oil, start = c(1994/01), frequency = 12)
head(oil.ts, 5)

is.ts(oil.ts)

frequency(oil.ts)
start(oil.ts)
end(oil.ts)
>>

## (1) FALSE  
## (1) 8047 7173 8156 6527 6364  
## (1) TRUE
## (1) 12
## (1) 1994    1
## (1) 1994   12