วิธีการแปลงสตริงเป็นวันที่ใน r (พร้อมตัวอย่าง)


บ่อยครั้งเมื่อคุณนำเข้าข้อมูลวันที่และเวลาลงใน R ค่าต่างๆ จะถูกนำเข้าเป็นสตริง

วิธีที่ง่ายที่สุดในการแปลงสตริงเป็นวันที่ใน R คือการใช้ฟังก์ชัน as.Date() ซึ่งใช้ไวยากรณ์ต่อไปนี้:

like.Date(x, รูปแบบ)

ทอง:

  • x: ค่าสตริงเดี่ยวหรือเวกเตอร์ของค่าสตริง
  • format: รูปแบบที่จะใช้สำหรับวันที่ ค่าเริ่มต้นคือ YYYY-MM-DD

คุณสามารถใช้คำสั่ง ?strftime ใน R เพื่อแสดงรายการอาร์กิวเมนต์ทั้งหมดที่ใช้สำหรับรูปแบบวันที่ได้ แต่อาร์กิวเมนต์ที่พบบ่อยที่สุด ได้แก่:

  • %d: วันของเดือนเป็นเลขทศนิยม (01-31)
  • %m: เดือนเป็นเลขทศนิยม (01-12)
  • %y: ปีที่ไม่มีศตวรรษ (เช่น 04)
  • %Y: ปีกับศตวรรษ (เช่น 2004)

บทช่วยสอนนี้แสดงตัวอย่างการใช้งานจริงของฟังก์ชัน as.Date()

ตัวอย่างที่ 1: แปลงสตริงเดี่ยวเป็นวันที่

รหัสต่อไปนี้แสดงวิธีการแปลงค่าสตริงเดียวเป็นวันที่:

 #create string value
x <- c(" 2021-07-24 ")

#convert string to date
new <- as.Date(x, format=" %Y-%m-%d ")
new

[1] "2021-07-24"

#check class of new variable
class(new)

[1] “Date”

ตัวอย่างที่ 2: แปลงเวกเตอร์ของสตริงเป็นวันที่

รหัสต่อไปนี้แสดงวิธีการแปลงเวกเตอร์ของสตริงเป็นวันที่:

 #create vector of strings
x <- c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 ")

#convert string to date
new <- as.Date(x, format=" %Y-%m-%d ")
new

[1] "2021-07-24" "2021-07-26" "2021-07-30"

#check class of new variable
class(new)

[1] “Date”

ตัวอย่างที่ 3: แปลงคอลัมน์กรอบข้อมูลเป็นวันที่

รหัสต่อไปนี้แสดงวิธีการแปลงคอลัมน์ข้อมูล blockchains เป็นวันที่:

 #create data frame
df <- data.frame(day = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "),
                 sales=c(22, 25, 28),
                 products=c(3, 6, 7))

#view structure of data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $ day: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3
 $ sales: num 22 25 28
 $products: num 3 6 7

#convert day variable to date
df$day <- as.Date(df$day, format=" %Y-%m-%d ")

#view structure of new data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $day: Date, format: "2021-07-24" "2021-07-26" ...
 $ sales: num 22 25 28
 $products: num 3 6 7

ตัวอย่างที่ 4: แปลงคอลัมน์กรอบวันที่หลายคอลัมน์เป็นวันที่

รหัสต่อไปนี้แสดงวิธีการแปลงข้อมูลบล็อกเชนหลายคอลัมน์เป็นวันที่:

 #create data frame
df <- data.frame(start = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "),
                 end = c(" 2021-07-25 ", " 2021-07-28 ", " 2021-08-02 "),
                 products=c(3, 6, 7))

#view structure of data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $ start: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3
 $ end: Factor w/ 3 levels "2021-07-25","2021-07-28",..: 1 2 3
 $products: num 3 6 7

#convert start and end variables to date
df[,c(' start ', ' end ')] = lapply (df[,c(' start ', ' end ')],
                                function(x) as.Date(x, format=" %Y-%m-%d "))

#view structure of new data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $start: Date, format: "2021-07-24" "2021-07-26" ...
 $end: Date, format: "2021-07-25" "2021-07-28" ...
 $products: num 3 6 7

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชัน lapply() ที่ใช้ในตัวอย่างนี้ ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้นำเสนอข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานกับวันที่ใน R:

คู่มือฉบับสมบูรณ์เกี่ยวกับรูปแบบวันที่ใน R
วิธีจัดเรียง dataframe ตามวันที่ใน R
วิธีแยกปีจากวันที่ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *