불규칙 데이터를 규칙적으로 만들기

R에서 금융 데이터 가져오기와 관리

Joshua Ulrich

Quantitative Analyst & quantmod Co-Author and Maintainer

규칙적 날짜-시간 시퀀스

  • 관측 간 간격이 동일함
  • seq() 메서드로 규칙적 날짜-시간 시퀀스 생성:
    • seq.Date()
    • seq.POSIXt() (POSIXct, POSIXlt)
from_date <- as.Date("2017-01-01")
to_date <- as.Date("2017-01-03")
date_seq <- seq(from = from_date, to = to_date, by = "day")
R에서 금융 데이터 가져오기와 관리
  • start() 첫 인덱스 값
  • end() 마지막 인덱스 값
regular_xts <- xts(seq_along(date_seq), order.by = date_seq)
start(regular_xts)
"2017-01-01"
end(regular_xts)
"2017-01-03"
seq(from = start(regular_xts), to = end(regular_xts), by = "day")
"2017-01-01" "2017-01-02" "2017-01-03"
R에서 금융 데이터 가져오기와 관리

Zero-width xts 객체

  • 인덱스만 있고 데이터는 없는 xts 객체
zero_width_xts <- xts(, order.by = date_seq)
zero_width_xts
Data:
numeric(0)
Index:
 Date[1:3], format: "2017-01-01" "2017-01-02" "2017-01-03"
str(zero_width_xts)
An 'xts' object of zero-width
R에서 금융 데이터 가져오기와 관리

불규칙에서 규칙적 데이터 만들기

  • 규칙적 시퀀스의 각 시점에 관측치 추가
  • 결과에 NA 포함
R에서 금융 데이터 가져오기와 관리

불규칙 xts와 규칙적 zero-width xts 병합

irregular
           Price
2017-01-02 20.01
2017-01-04 20.02
2017-01-10 20.05
date_seq <- seq(from = start(irregular),
                to = end(irregular),
                by = "day")
regular_xts <- xts(, date_seq)
R에서 금융 데이터 가져오기와 관리

불규칙 xts와 규칙적 zero-width xts 병합

merge(irregular, regular_xts)
           Price
2017-01-02 20.01
2017-01-03    NA
2017-01-04 20.02
2017-01-05    NA
2017-01-06    NA
2017-01-07    NA
2017-01-08    NA
2017-01-09    NA
2017-01-10 20.05
R에서 금융 데이터 가져오기와 관리

결측값 채우기

merged_xts <- merge(irregular, regular_xts)

na.locf(merged_xts)
           Price
2017-01-02 20.01
2017-01-03 20.01
2017-01-04 20.02
2017-01-05 20.02
2017-01-06 20.02
2017-01-07 20.02
2017-01-08 20.02
2017-01-09 20.02
2017-01-10 20.05
R에서 금융 데이터 가져오기와 관리

결측값 채우기

merge(irregular, regular_xts, fill = na.locf)
           Price
2017-01-02 20.01
2017-01-03 20.01
2017-01-04 20.02
2017-01-05 20.02
2017-01-06 20.02
2017-01-07 20.02
2017-01-08 20.02
2017-01-09 20.02
2017-01-10 20.05
R에서 금융 데이터 가져오기와 관리

연습해 봅시다!

R에서 금융 데이터 가져오기와 관리

Preparing Video For Download...