การบวกหรือลบช่วงเวลาจากวันที่และเวลา
การนำช่วงเวลามาบวกหรือลบจากจุดเวลาหนึ่งเป็นการใช้งานที่พบบ่อย ตัวอย่างเช่น หากต้องการคำนวณเวลาที่ห่างออกไปหนึ่งวันจาก mar_11 (จากแบบฝึกหัดก่อนหน้า) สามารถทำได้ทั้งสองวิธีนี้:
mar_11 + days(1)
mar_11 + ddays(1)
ลองรันในคอนโซลดู จะได้ผลลัพธ์ที่ต่างกัน แล้วแบบไหนถูกต้อง? ขึ้นอยู่กับสิ่งที่ต้องการ ถ้าต้องการคำนึงถึงความยาวที่ไม่เท่ากันของหน่วยเวลา เช่น ผลจากการปรับเวลาตามฤดูกาล (daylight saving) ให้ใช้ period days() แต่ถ้าต้องการเวลาที่ห่างออกไป 86,400 วินาทีพอดี ให้ใช้ duration ddays()
ในแบบฝึกหัดนี้ จะได้ฝึกบวกและลบช่วงเวลาจากวันที่และ datetime
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับวันที่และเวลาใน R
คำแนะนำการฝึกหัด
- วันจันทร์ที่ 27 สิงหาคม 2018 เวลาบ่าย 2 โมง และต้องการตั้งเตือนตัวเองให้ส่งอีเมลในเวลาเดียวกันของสัปดาห์หน้า ให้บวก period หนึ่งสัปดาห์เข้ากับ
mon_2pm - วันอังคารที่ 28 สิงหาคม 2018 เวลา 9 โมงเช้า และกำลังจะรันโค้ดที่มักใช้เวลาประมาณ 81 ชั่วโมง จะเสร็จเมื่อไหร่? ให้บวก duration 81 ชั่วโมงเข้ากับ
tue_9am - เมื่อ 5 ปีที่แล้วกำลังทำอะไรอยู่? ให้ลบ period 5 ปีออกจาก
today() - ลบ duration 5 ปีออกจาก
today()จะได้วันที่ที่ต่างออกไปหรือไม่?
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a period of one week to mon_2pm
mon_2pm <- dmy_hm("27 Aug 2018 14:00")
mon_2pm + ___
# Add a duration of 81 hours to tue_9am
tue_9am <- dmy_hm("28 Aug 2018 9:00")
tue_9am + ___
# Subtract a period of five years from today()
today() - ___
# Subtract a duration of five years from today()
today() - ___