การลบวันที่
เช่นเดียวกับตัวเลข การคำนวณทางคณิตศาสตร์สามารถทำได้กับวันที่เช่นกัน โดยเฉพาะอย่างยิ่ง สามารถหาผลต่างระหว่างวันที่สองวัน (เป็นจำนวนวัน) ได้ด้วยการลบ:
today <- as.Date("2017-01-02")
tomorrow <- as.Date("2017-01-03")
one_year_away <- as.Date("2018-01-02")
tomorrow - today
Time difference of 1 days
one_year_away - today
Time difference of 365 days
หรืออีกทางหนึ่ง สามารถใช้ฟังก์ชัน difftime() เพื่อหาช่วงเวลาได้เช่นกัน
difftime(tomorrow, today)
Time difference of 1 days
# With some extra options!
difftime(tomorrow, today, units = "secs")
Time difference of 86400 secs
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลางสำหรับการเงิน
คำแนะนำการฝึกหัด
- เตรียม vector ชื่อ
datesไว้ให้แล้ว - ใช้การลบเพื่อยืนยันว่าวันที่ 1 มกราคม 1970 คือวันแรกที่ R เริ่มนับ โดยสร้างตัวแปรชื่อ
originที่มีค่าเป็น"1970-01-01"ในรูปแบบวันที่ - จากนั้น ใช้
as.numeric()กับdatesเพื่อดูว่าผ่านมากี่วันนับจากวันที่ 1 มกราคม 1970 - สุดท้าย ลบ
originออกจากdatesเพื่อยืนยันผลลัพธ์ (สังเกตการทำงานแบบ recycling ที่เกิดขึ้นด้วย!)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Dates
dates <- as.Date(c("2017-01-01", "2017-01-02", "2017-01-03"))
# Create the origin
origin <- ___
# Use as.numeric() on dates
___
# Find the difference between dates and origin
___