วิธีการคำนวณวันทำการใน r (พร้อมตัวอย่าง)
คุณสามารถใช้ฟังก์ชันแพ็คเกจ bizdays ใน R เพื่อเพิ่ม ลบ และนับจำนวนวันทำการระหว่างวันที่สองวันใน R ได้อย่างรวดเร็ว
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันเหล่านี้ในทางปฏิบัติ
ตัวอย่างที่ 1: นับจำนวนวันทำงานระหว่างวันที่สองวันใน R
หากต้องการนับจำนวนวันทำการระหว่างวันที่สองใน R คุณต้องใช้ฟังก์ชัน create.calendar() จากแพ็คเกจ bizdays ก่อนเพื่อสร้างปฏิทินที่มีรายการวันทำการ:
library (bizdays)
#create business calendar
business_calendar <- create. calendar (' my_calendar ',weekdays = c(' saturday ',' sunday '))
โปรดทราบว่าอาร์กิวเมนต์ วันหยุดสุดสัปดาห์ จะระบุวันในสัปดาห์ที่ ไม่ใช่ วันทำการ
จากนั้นเราสามารถใช้ฟังก์ชัน bizdays() เพื่อนับจำนวนวันทำงานระหว่างวันที่ระบุสองวัน:
library (bizdays)
#calculate number of business days between two dates
bizdays(from = ' 2022-01-01 ', to = ' 2022-12-31 ', cal = business_calendar)
[1] 259
จากผลลัพธ์เราจะเห็นว่ามี 259 วันทำการระหว่างวันที่ 01/01/2022 ถึง 12/31/2022
ตัวอย่างที่ 2: เพิ่มและลบวันทำการนับจากวันที่ใน R
สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับยอดขายรวมที่เกิดขึ้นในร้านค้าในวันที่ต่างกัน:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (date = as.Date (' 2022-01-01 ') + 0:249,
sales = runif(n=250, min=1, max=30))
#view head of data frame
head(df)
dirty date
1 2022-01-01 8.699751
2 2022-01-02 11.791593
3 2022-01-03 17.612748
4 2022-01-04 27.338026
5 2022-01-05 6.848776
6 2022-01-06 27.053301
เราสามารถใช้ฟังก์ชัน offset() จากแพ็คเกจ bizdays เพื่อเพิ่ม 10 วันทำการในแต่ละวัน:
library (bizdays)
#create business calendar
business_calendar <- create. calendar (' my_calendar ',weekdays = c(' saturday ',' sunday '))
#add 10 business days to each date
df$date <- bizdays::offset(df$date, 10 , cal = business_calendar)
#view updated head of data frame
head(df)
dirty date
1 2022-01-14 8.699751
2 2022-01-14 11.791593
3 2022-01-17 17.612748
4 2022-01-18 27.338026
5 2022-01-19 6.848776
6 2022-01-20 27.053301
โปรดทราบว่าแต่ละวันจะมีการเพิ่ม 10 วันทำการ
หากต้องการลบวันทำการ เพียงใช้จำนวนลบในฟังก์ชัน offset()
ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีลบ 10 วันทำการจากแต่ละวัน:
library (bizdays)
#create business calendar
business_calendar <- create. calendar (' my_calendar ',weekdays = c(' saturday ',' sunday '))
#subtract 10 business days to each date
df$date <- bizdays::offset(df$date, - 10 , cal = business_calendar)
#view updated head of data frame
head(df)
dirty date
1 2021-12-20 8.699751
2 2021-12-20 11.791593
3 2021-12-20 17.612748
4 2021-12-21 27.338026
5 2021-12-22 6.848776
6 2021-12-23 27.053301
โปรดทราบว่าจะมีการลบ 10 วันทำการออกจากแต่ละวัน
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับแพ็คเกจ bizdays ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีแปลงวันที่เป็นตัวเลขใน R
วิธีแยกเดือนจากวันที่ใน R
วิธีเพิ่มและลบเดือนถึงวันที่ใน R