การแปลงข้อมูลผิดปกติให้เป็นปกติ

การนำเข้าและจัดการข้อมูลทางการเงินใน 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() ค่า index แรก
  • end() ค่า index สุดท้าย
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

ออบเจกต์ xts แบบ zero-width

  • ออบเจกต์ xts ที่มี index แต่ไม่มีข้อมูล
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

การ merge xts ผิดปกติกับ xts แบบ zero-width ที่สม่ำเสมอ

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

การ merge xts ผิดปกติกับ xts แบบ zero-width ที่สม่ำเสมอ

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...