거래일 기준으로 결측값 채우기
이전 연습 문제에서는 전날의 마지막 관측값을 다음 날의 첫 관측값으로 이어서 채웠습니다. 이번 연습 문제에서는 전날의 최종값을 사용하지 않고, 거래일 단위로 결측값을 채우는 방법을 살펴봅니다.
Introduction to xts and zoo 강의에서 사용했던 split-lapply-rbind 패턴을 그대로 사용합니다. 참고용 패턴은 아래와 같습니다.
x_split <- split(x, f = "months")
x_list <- lapply(x_split, cummax)
x_list_rbind <- do.call(rbind, x_list)
do.call(rbind, ...) 구문을 사용하면 각 객체의 이름을 일일이 쓰지 않고, 객체들의 리스트를 rbind()에 전달할 수 있다는 점을 기억하세요.
작업 공간에는 이전 연습에서 만든 정규 시계를 담고 있으나 NA가 채워져 있지 않은 trade_day 객체가 준비되어 있습니다.
이 연습은 강의의 일부입니다
R에서 금융 데이터 가져오기와 관리
연습 안내
split()을 사용해trade_day데이터를 일자별 데이터 리스트로 나누고, 그 결과를daily_list객체로 생성하세요.- 이제
lapply()를 사용해daily_list의 각 일자 데이터에서NA를 채우세요. - 마지막으로
do.call()과rbind()를 사용해daily_filled를 하나의 xts 객체로 변환하고, 객체 이름을filled_by_trade_day로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Split trade_day into days
daily_list <- split(___ , f = "___")
# Use lapply to call na.locf for each day in daily_list
daily_filled <- lapply(___, FUN = ___)
# Use do.call to rbind the results
filled_by_trade_day <- do.call(rbind, ___)