วิธีการคำนวณวันทำการใน 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

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

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