كيفية حساب أيام العمل باللغة 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 إلى 31/12/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