Bắt đầu ngayBắt đầu miễn phí

Điền giá trị thiếu theo ngày giao dịch

Bài trước đã mang quan sát cuối cùng của ngày trước sang quan sát đầu tiên của ngày tiếp theo. Bài này sẽ cho bạn thấy cách điền giá trị thiếu theo từng ngày giao dịch, mà không dùng giá trị cuối cùng của ngày trước.

Bạn sẽ dùng lại mô hình split-lapply-rbind từ khóa học Introduction to xts and zoo. Tham khảo mẫu dưới đây.

x_split <- split(x, f = "months")
x_list <- lapply(x_split, cummax)
x_list_rbind <- do.call(rbind, x_list)

Hãy nhớ rằng cú pháp do.call(rbind, ...) cho phép bạn truyền một danh sách các đối tượng vào rbind() thay vì phải gõ toàn bộ tên của chúng.

Không gian làm việc của bạn có một đối tượng trade_day chứa chuỗi đều từ bài trước, nhưng chưa có giá trị NA nào được điền.

Bài tập này là một phần của khóa học

Nhập và quản lý dữ liệu tài chính trong R

Xem khóa học

Hướng dẫn bài tập

  • Tạo đối tượng daily_list bằng cách dùng split() để đưa dữ liệu trade_day vào một danh sách theo từng ngày.
  • Tiếp theo dùng lapply() để điền các giá trị NA cho dữ liệu của mỗi ngày trong danh sách daily_list.
  • Cuối cùng, dùng do.call()rbind() để chuyển daily_filled thành một đối tượng xts duy nhất tên là filled_by_trade_day.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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, ___)
Chỉnh sửa và Chạy Mã