สร้างและจัดรูปแบบวันที่
ในการสร้างออบเจกต์ Date จาก character string ใน R สามารถใช้ฟังก์ชัน as.Date() โดย character string ต้องอยู่ในรูปแบบที่กำหนดด้วยสัญลักษณ์ต่อไปนี้ (ตัวอย่างอ้างอิงจากวันที่ 13 มกราคม 1982):
%Y: ปี 4 หลัก (1982)%y: ปี 2 หลัก (82)%m: เดือน 2 หลัก (01)%d: วันที่ 2 หลัก (13)%A: วันในสัปดาห์ (Wednesday)%a: วันในสัปดาห์แบบย่อ (Wed)%B: ชื่อเดือนเต็ม (January)%b: ชื่อเดือนแบบย่อ (Jan)
คำสั่ง R ต่อไปนี้ทุกบรรทัดจะสร้างออบเจกต์ Date เดียวกัน คือวันที่ 13 มกราคม 1982:
as.Date("1982-01-13")
as.Date("Jan-13-82", format = "%b-%d-%y")
as.Date("13 January, 1982", format = "%d %B, %Y")
สังเกตว่าบรรทัดแรกไม่จำเป็นต้องระบุอาร์กิวเมนต์ format เพราะ R จะจับคู่ character string กับรูปแบบ "%Y-%m-%d" หรือ "%Y/%m/%d" โดยอัตโนมัติ
นอกจากการสร้างวันที่แล้ว ยังสามารถแปลงวันที่ให้เป็น character string ในรูปแบบอื่นได้โดยใช้ฟังก์ชัน format() ลองรันโค้ดต่อไปนี้ดู:
today <- Sys.Date()
format(Sys.Date(), format = "%d %B, %Y")
format(Sys.Date(), format = "Today is a %A!")
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
- มี character string แทนวันที่สามรายการเตรียมไว้ให้แล้ว ให้แปลงแต่ละรายการให้เป็นวันที่โดยใช้
as.Date()แล้วกำหนดให้กับตัวแปรdate1,date2และdate3ตามลำดับ โดยโค้ดสำหรับdate1ได้เขียนไว้ให้แล้ว - ดึงข้อมูลจากวันที่เหล่านั้นออกมาเป็น character string โดยใช้
format()จากวันที่แรก ให้ดึงชื่อวันในสัปดาห์ จากวันที่สอง ให้ดึงวันที่ในเดือน และจากวันที่สาม ให้ดึงชื่อเดือนแบบย่อและปี 4 หลัก โดยคั่นด้วยช่องว่าง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Definition of character strings representing dates
str1 <- "May 23, '96"
str2 <- "2012-03-15"
str3 <- "30/January/2006"
# Convert the strings to dates: date1, date2, date3
date1 <- as.Date(str1, format = "%b %d, '%y")
# Convert dates to formatted strings
format(date1, "%A")