การ parse อย่างรวดเร็วด้วย fasttime
แพ็กเกจ fasttime มีฟังก์ชันเดียวคือ fastPOSIXct() ซึ่งออกแบบมาสำหรับอ่านข้อมูล datetime ที่อยู่ในรูปแบบ ISO 8601 โดยเฉพาะ เนื่องจากรองรับเพียงรูปแบบเดียวและไม่ต้องเดารูปแบบ จึงทำงานได้เร็วมาก!
ในแบบฝึกหัดนี้ คุณจะเห็นว่ามันเร็วแค่ไหน โดยเปรียบเทียบความเร็วในการอ่านวันที่จากข้อมูลสภาพอากาศรายชั่วโมงของเมืองโอ๊กแลนด์ (กว่า 17,000 รายการ) กับฟังก์ชัน ymd_hms() ของ lubridate
สำหรับการเปรียบเทียบเวลา จะใช้ฟังก์ชัน microbenchmark() จากแพ็กเกจที่มีชื่อเดียวกัน โดยส่ง expression ที่ต้องการวัดเวลาเข้าไปเป็นอาร์กิวเมนต์ได้หลายตัวตามต้องการ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับวันที่และเวลาใน R
คำแนะนำการฝึกหัด
เราได้โหลดข้อมูล datetime จากชุดข้อมูลโอ๊กแลนด์ในรูปแบบ string ไว้ในเวกเตอร์ dates แล้ว
- ตรวจสอบโครงสร้างของ
datesเพื่อยืนยันว่าเป็น string และอยู่ในรูปแบบ ISO 8601 - Parse
datesด้วยfasttimeแล้ว pipe ไปยังstr()เพื่อยืนยันว่าfastPOSIXctแปลงค่าได้ถูกต้อง - เพื่อเปรียบเทียบเวลา ให้เรียก
microbenchmarkโดยใช้ymd_hms()สำหรับ parsedatesเป็นอาร์กิวเมนต์แรก และfastPOSIXct()เป็นอาร์กิวเมนต์ที่สอง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
library(microbenchmark)
library(fasttime)
# Examine structure of dates
str(___)
# Use fastPOSIXct() to parse dates
fastPOSIXct(___) %>% str()
# Compare speed of fastPOSIXct() to ymd_hms()
microbenchmark(
ymd_hms = ___(dates),
fasttime = ___(dates),
times = 20)