Como calcular dias úteis em r (com exemplos)


Você pode usar as funções do pacote bizdays em R para adicionar, subtrair e contar rapidamente o número de dias úteis entre duas datas em R.

Os exemplos a seguir mostram como usar essas funções na prática.

Exemplo 1: conte o número de dias úteis entre duas datas em R

Para contar o número de dias úteis entre duas datas em R, você deve primeiro usar a função create.calendar() do pacote bizdays para criar um calendário contendo uma lista de dias úteis:

 library (bizdays)

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

Observe que o argumento fins de semana especifica quais dias da semana não são dias úteis.

Podemos então usar a função bizdays() para contar o número de dias úteis entre duas datas específicas:

 library (bizdays)

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

[1] 259

Pelo resultado podemos perceber que são 259 dias úteis entre 01/01/2022 e 31/12/2022.

Exemplo 2: Adicionar e subtrair dias úteis da data em R

Suponha que temos o seguinte quadro de dados em R que contém informações sobre o total de vendas realizadas em uma loja em datas diferentes:

 #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

Podemos usar a função offset() do pacote bizdays para adicionar 10 dias úteis a cada data:

 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

Observe que foram adicionados 10 dias úteis a cada data.

Para subtrair dias úteis, basta usar um número negativo na função offset() .

Por exemplo, o código a seguir mostra como subtrair 10 dias úteis de cada data:

 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

Observe que 10 dias úteis foram subtraídos de cada data.

Nota : Você pode encontrar a documentação completa do pacote bizdays aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como converter uma data em numérico em R
Como extrair mês da data em R
Como adicionar e subtrair meses a uma data em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *