Jak obliczyć dni robocze w r (z przykładami)


Możesz użyć funkcji pakietu bizdays w R, aby szybko dodawać, odejmować i liczyć liczbę dni roboczych między dwiema datami w R.

Poniższe przykłady pokazują, jak wykorzystać te funkcje w praktyce.

Przykład 1: Policz liczbę dni roboczych pomiędzy dwiema datami w R

Aby policzyć liczbę dni roboczych pomiędzy dwiema datami w R, musisz najpierw użyć funkcji create.calendar() z pakietu bizdays , aby utworzyć kalendarz zawierający listę dni roboczych:

 library (bizdays)

#create business calendar
business_calendar <- create. calendar (' my_calendar ',weekdays = c(' saturday ',' sunday '))

Należy pamiętać, że argument weekendy określa, które dni tygodnia nie są dniami roboczymi.

Możemy następnie użyć funkcji bizdays() , aby policzyć liczbę dni roboczych pomiędzy dwiema określonymi datami:

 library (bizdays)

#calculate number of business days between two dates
bizdays(from = ' 2022-01-01 ', to = ' 2022-12-31 ', cal = business_calendar)

[1] 259

Z wyniku widzimy, że między 01.01.2022 a 31.12.2022 jest 259 dni roboczych.

Przykład 2: Dodawanie i odejmowanie dni roboczych od daty w R

Załóżmy, że mamy w R następującą ramkę danych zawierającą informacje o łącznej sprzedaży zrealizowanej w sklepie w różnych datach:

 #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

Możemy użyć funkcji offset() z pakietu bizdays , aby dodać 10 dni roboczych do każdej daty:

 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

Należy pamiętać, że do każdej daty dodano 10 dni roboczych.

Aby odjąć dni robocze, po prostu użyj liczby ujemnej w funkcji offset() .

Na przykład poniższy kod pokazuje, jak odjąć 10 dni roboczych od każdej daty:

 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

Należy pamiętać, że od każdej daty odjęto 10 dni roboczych.

Uwaga : pełną dokumentację pakietu bizdays znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak przekonwertować datę na liczbę w R
Jak wyodrębnić miesiąc z daty w R
Jak dodawać i odejmować miesiące do daty w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *