xts: 시계열 데이터에서 특정 시간대만 추출하는 방법

xts형의 분봉데이터를 가지고 있는데 특정 시간대, 예를 들면 매일 11시00분00초에 특정 트리거를 줘서 어떤 동작을 하는 프로그램을 만들고 싶다.


이런 조건에서 특정 시간대를 뽑기위한 방법은 다음과 같다. 


xts에는 이런 시간대를 뽑아내기 위한 함수가 있는데 그 함수로는 아래의 함수들이 있다. 

이름을 봐서 일겠지만, 날짜로 뽑는것 주단위로 뽑는 건 시, 분 단위로 뽑는 것 다 있다. 


.indexday(x)

.indexweek(x)

.indexmon(x)

.indexhour(x)

.indexmin(x)

.indexsec(x)


더 있으니 추가적인 방법은 메뉴얼을 참고하자 


분봉데이터가 있다는 가정하에 (저의 경우는 A233160이라는 xts형 분봉 데이터를 사용한다.) 예를 들면 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 시계열 데이터에서 특정 11시만 추출
 
# .indexhour(객체명) 과 .indexmin(객체명)을 엔드조건(&)으로 결합해서 매일 11시에 데이터만 추출했다. 
hour11 <- A233160[.indexhour(A233160)==11 & .indexmin(A233160)== 00]
 
> hour11
                    A233160.Open A233160.High A233160.Low A233160.Close A233160.Volume A233160.Adjusted
2019-01-28 11:00:00        12850        12850       12850         12850            500            12850
2019-01-29 11:00:00        12560        12560       12560         12560            100            12560
2019-01-30 11:00:00        12920        12920       12910         12910             22            12910
2019-01-31 11:00:00        13040        13080       13040         13070          10956            13040
2019-02-01 11:00:00        13075        13075       13070         13070             20            13070
2019-02-07 11:00:00        13525        13530       13525         13530           1224            13525
2019-02-08 11:00:00        13615        13620       13615         13615           3703            13615
 
cs


모르면 굉장히 힘들지면 알면 무지무지 간단한 방법이다. 



댓글

Designed by JB FACTORY