Hoe u werkdagen in r kunt berekenen (met voorbeelden)
U kunt de bizdays- pakketfuncties in R gebruiken om snel het aantal werkdagen tussen twee datums in R op te tellen, af te trekken en te tellen.
De volgende voorbeelden laten zien hoe u deze functies in de praktijk kunt gebruiken.
Voorbeeld 1: Tel het aantal werkdagen tussen twee datums in R
Om het aantal werkdagen tussen twee datums in R te tellen, moet u eerst de functie create.calendar() uit het bizdays- pakket gebruiken om een kalender te maken met een lijst met werkdagen:
library (bizdays)
#create business calendar
business_calendar <- create. calendar (' my_calendar ',weekdays = c(' saturday ',' sunday '))
Houd er rekening mee dat het weekendargument aangeeft welke dagen van de week geen werkdagen zijn.
We kunnen dan de functie bizdays() gebruiken om het aantal werkdagen tussen twee specifieke datums te tellen:
library (bizdays)
#calculate number of business days between two dates
bizdays(from = ' 2022-01-01 ', to = ' 2022-12-31 ', cal = business_calendar)
[1] 259
Uit het resultaat kunnen we afleiden dat er 259 werkdagen zijn tussen 01/01/2022 en 12/31/2022.
Voorbeeld 2: Werkdagen optellen en aftrekken van de datum in R
Stel dat we het volgende gegevensframe in R hebben dat informatie bevat over de totale verkopen in een winkel op verschillende data:
#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
We kunnen de functie offset() uit het bizdays- pakket gebruiken om 10 werkdagen aan elke datum toe te voegen:
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
Houd er rekening mee dat er aan elke datum 10 werkdagen zijn toegevoegd.
Om werkdagen af te trekken, gebruikt u eenvoudigweg een negatief getal in de functie offset() .
De volgende code laat bijvoorbeeld zien hoe u 10 werkdagen van elke datum kunt aftrekken:
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
Houd er rekening mee dat er van elke datum 10 werkdagen zijn afgetrokken.
Let op : U kunt de volledige documentatie voor het bizdays- pakket hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe een datum naar numeriek in R te converteren
Hoe maand uit datum te extraheren in R
Maanden optellen en aftrekken bij een datum in R