เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เติมค่าที่หายไปตามวันซื้อขาย

แบบฝึกหัดก่อนหน้านำค่าสุดท้ายของวันก่อนหน้ามาเติมเป็นค่าแรกของวันถัดไป แบบฝึกหัดนี้จะแสดงวิธีเติมค่าที่หายไปตามวันซื้อขาย โดยไม่ใช้ค่าสุดท้ายของวันก่อนหน้า

จะใช้รูปแบบ split-lapply-rbind เดิมจากคอร์ส Introduction to xts and zoo ตัวอย่างรูปแบบมีดังนี้

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

ขอให้ระลึกว่า syntax do.call(rbind, ...) ช่วยให้ส่งลิสต์ของอ็อบเจกต์ให้ rbind() ได้โดยตรง โดยไม่ต้องพิมพ์ชื่อทีละตัว

ใน workspace มีอ็อบเจกต์ trade_day ที่เก็บชุดข้อมูลแบบสม่ำเสมอจากแบบฝึกหัดก่อนหน้า แต่ยังไม่มีการเติมค่า NA ใด ๆ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การนำเข้าและจัดการข้อมูลทางการเงินใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างอ็อบเจกต์ daily_list โดยใช้ split() เพื่อแบ่งข้อมูลใน trade_day ออกเป็นลิสต์ตามแต่ละวัน
  • จากนั้นใช้ lapply() เพื่อเติมค่า NA ในข้อมูลของแต่ละวันในลิสต์ daily_list
  • สุดท้าย ใช้ 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, ___)
แก้ไขและรันโค้ด