เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การระบุลำดับด้วย `parse_date_time()`

ถ้าข้อมูลวันที่อยู่ในลำดับแปลก ๆ อย่างเช่น dym_msh ล่ะ? ไม่มีฟังก์ชันที่ตั้งชื่อเฉพาะสำหรับลำดับนั้น แต่นั่นคือจุดที่ parse_date_time() เข้ามาช่วย ฟังก์ชันนี้รับอาร์กิวเมนต์เพิ่มเติมชื่อ orders ซึ่งช่วยให้ระบุลำดับของส่วนประกอบในวันที่ได้

ตัวอย่างเช่น หากต้องการแปลง "2010 September 20th" สามารถใช้ parse_date_time("2010 September 20th", orders = "ymd") ซึ่งให้ผลเทียบเท่ากับการใช้ฟังก์ชัน ymd() จากแบบฝึกหัดที่แล้ว

ข้อดีอย่างหนึ่งของ parse_date_time() คือรองรับอักขระรูปแบบได้มากกว่า เช่น ระบุชื่อวันด้วย A ใช้ I สำหรับเวลาแบบ 12 ชั่วโมง ระบุตัวบอก am/pm ด้วย p และอื่น ๆ อีกมาก ดูรายการทั้งหมดได้ที่หน้าช่วยเหลือ ?parse_date_time

อีกข้อดีที่สำคัญคือสามารถระบุ orders เป็นเวกเตอร์ได้ ทำให้แปลงวันที่ที่มีหลายรูปแบบในคราวเดียวกันได้

ลองฝึกใช้ในแบบฝึกหัดนี้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำงานกับวันที่และเวลาใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • x เป็น datetime ที่ซับซ้อนกว่าเดิม ใช้คำใบ้ในคำแนะนำเพื่อแปลง x
  • two_orders มีลำดับสองแบบที่แตกต่างกัน แปลงทั้งสองโดยระบุ order เป็น c("mdy", "dmy")
  • แปลง short_dates ด้วย orders = c("dOmY", "OmY", "Y") วันที่ที่ไม่ได้ระบุเดือนหรือวันจะเกิดอะไรขึ้น?

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Specify an order string to parse x
x <- "Monday June 1st 2010 at 4pm"
___(x, orders = "___")

# Specify order to include both "mdy" and "dmy"
two_orders <- c("October 7, 2001", "October 13, 2002", "April 13, 2003", 
  "17 April 2005", "23 April 2017")
parse_date_time(two_orders, orders = ___)

# Specify order to include "dOmY", "OmY" and "Y"
short_dates <- c("11 December 1282", "May 1372", "1253")
parse_date_time(short_dates, orders = ___)
แก้ไขและรันโค้ด