เปรียบเทียบเวลาในการอ่านไฟล์ CSV และ RDS
หนึ่งในงานที่พบบ่อยที่สุดคือการอ่านข้อมูลจากไฟล์ CSV อย่างไรก็ตาม สำหรับไฟล์ CSV ขนาดใหญ่ กระบวนการนี้อาจใช้เวลานาน
เทคนิคที่ดีอย่างหนึ่งคืออ่านข้อมูลเข้ามาแล้วบันทึกเป็นไฟล์ไบนารีของ R (rds) โดยใช้ saveRDS()
หากต้องการอ่านไฟล์ rds กลับเข้ามา ให้ใช้ readRDS()
หมายเหตุ: เนื่องจาก rds เป็นรูปแบบเนทีฟของ R สำหรับจัดเก็บออบเจกต์เดี่ยว จึงไม่มีการพึ่งพาไลบรารีของบุคคลที่สามที่อาจเปลี่ยนแปลงในอนาคต
หากต้องการเปรียบเทียบประสิทธิภาพของทั้งสองวิธี สามารถใช้ system.time()
ฟังก์ชันนี้จะคืนค่าเวลาที่ใช้ในการประมวลผลนิพจน์ R ใดก็ได้ ตัวอย่างเช่น หากต้องการจับเวลาการคำนวณรากที่สองของตัวเลขตั้งแต่หนึ่งถึงสิบล้าน สามารถเขียนได้ดังนี้:
system.time(sqrt(1:1e7))
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียน R Code อย่างมีประสิทธิภาพ
คำแนะนำการฝึกหัด
ไฟล์ "movies.csv" และ "movies.rds" ทั้งสองมี data frame ที่เหมือนกัน ซึ่งบรรจุข้อมูลของภาพยนตร์ 45,000 เรื่อง
- ใช้ฟังก์ชัน
system.time()เพื่อวัดเวลาที่ใช้ในการอ่านไฟล์ CSV ด้วยread.csv("movies.csv") - ทำซ้ำสำหรับไฟล์ rds โดยใช้
readRDS()กับไฟล์"movies.rds"
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# How long does it take to read movies from CSV?
system.time(read.csv(___))
# How long does it take to read movies from RDS?
___