วิธีการ ลบชั่วโมงออกจากเวลาใน r (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีใดๆ ต่อไปนี้เพื่อลบจำนวนชั่วโมงที่แน่นอนออกจากหนึ่งชั่วโมงใน R:

วิธีที่ 1: ใช้ Base R

 #create new column that subtracts 4 hours from time
df$subtract4 <- df$time - ( 4 * 3600 )

วิธีที่ 2: ใช้แพ็คเกจ Lubridate

 library (lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours( 4 )

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (time=as. POSIXct (c('2022-01-03 08:04:15', '2022-01-05 14:04:15',
                                   '2022-01-05 20:03:53', '2022-01-06 03:29:13',
                                   '2022-01-06 06:15:00', '2022-01-07 10:48:11'),
                                   format='%Y-%m-%d %H:%M:%OS'),
                 sales=c(130, 98, 240, 244, 174, 193))

#view data frame
df

                 time sales
1 2022-01-03 08:04:15 130
2 2022-01-05 14:04:15 98
3 2022-01-05 20:03:53 240
4 2022-01-06 03:29:13 244
5 2022-01-06 06:15:00 174
6 2022-01-07 10:48:11 193

หมายเหตุ : หากต้องการเพิ่มเวลาให้กับวันที่ เพียงแทนที่เครื่องหมายลบด้วยเครื่องหมายบวกในสูตรใดสูตรหนึ่งข้างต้น

ตัวอย่างที่ 1: การลบชั่วโมงออกจากเวลาโดยใช้ฐาน R

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ที่เรียกว่า subtract4 ซึ่งจะลบสี่ครั้งจากแต่ละค่าในคอลัมน์ เวลา :

 #create new column that subtracts 4 hours from time
df$subtract4 <- df$time - ( 4 * 3600 )

#view updated data frame
df

                 time sales subtract4
1 2022-01-03 08:04:15 130 2022-01-03 04:04:15
2 2022-01-05 14:04:15 98 2022-01-05 10:04:15
3 2022-01-05 20:03:53 240 2022-01-05 16:03:53
4 2022-01-06 03:29:13 244 2022-01-05 23:29:13
5 2022-01-06 06:15:00 174 2022-01-06 02:15:00
6 2022-01-07 10:48:11 193 2022-01-07 06:48:11

โปรดทราบว่าค่าในคอลัมน์ subtract4 ใหม่จะเท่ากับค่าในคอลัมน์ เวลา โดยลบสี่ชั่วโมง

หมายเหตุ : เราใช้ (4*3600) ในสูตรเนื่องจากค่าเวลาจะเก็บเป็นวินาทีใน R เนื่องจากในหนึ่งชั่วโมงมี 3600 วินาที เราจึงต้องคูณ 4 ด้วย 3600 เพื่อลบ 4 ชั่วโมง

ตัวอย่างที่ 2: ลบชั่วโมงออกจากเวลาโดยใช้แพ็คเกจ Lubridate

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน hours() ของแพ็คเกจ lubridate เพื่อสร้างคอลัมน์ใหม่ที่เรียกว่า subtract4 ซึ่งจะลบสี่ชั่วโมงออกจากแต่ละค่าในคอลัมน์ เวลา :

 library (lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours( 4 )

#view updated data frame
df

                 time sales subtract4
1 2022-01-03 08:04:15 130 2022-01-03 04:04:15
2 2022-01-05 14:04:15 98 2022-01-05 10:04:15
3 2022-01-05 20:03:53 240 2022-01-05 16:03:53
4 2022-01-06 03:29:13 244 2022-01-05 23:29:13
5 2022-01-06 06:15:00 174 2022-01-06 02:15:00
6 2022-01-07 10:48:11 193 2022-01-07 06:48:11

โปรดทราบว่าค่าในคอลัมน์ subtract4 ใหม่จะเท่ากับค่าในคอลัมน์ เวลา โดยลบสี่ชั่วโมง

โปรดทราบว่าวิธีนี้ให้ผลลัพธ์เหมือนกับวิธี R พื้นฐาน

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีแปลงวันที่เป็นตัวเลขใน R
วิธีแยกเดือนจากวันที่ใน R
วิธีเพิ่มและลบเดือนถึงวันที่ใน R

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

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