Як розрахувати робочі дні в 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 '))
Зауважте, що аргумент weekends визначає, які дні тижня не є робочими.
Потім ми можемо використовувати функцію 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
З результату ми бачимо, що між 01.01.2022 і 31.12.2022 є 259 робочих днів.
Приклад 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