ComeçarComece de graça

O detalhe complicado sobre meses

O que ymd("2018-01-31") + months(1) deve retornar? Deve ser 30, 31 ou 28 dias no futuro? Faça o teste. Em geral, o lubridate retorna o mesmo dia do mês no mês seguinte, mas como 31 de fevereiro não existe, o lubridate retorna um valor ausente, NA.

Existem operadores alternativos de adição e subtração: %m+% e %m-%, que têm comportamento diferente. Em vez de retornar NA para uma data inexistente, eles voltam para a última data existente.

Você vai explorar esse comportamento tentando gerar uma sequência com o último dia de cada mês deste ano.

Este exercício faz parte do curso

Trabalhando com datas e horários no R

Ver curso

Instruções do exercício

Colocamos jan_31, a data de 31 de janeiro deste ano, no seu workspace.

  • Comece criando uma sequência de 1 a 12 períodos de 1 mês.
  • Some month_seq a jan_31. Perceba o que acontece em qualquer mês em que o dia 31 não existe
  • Agora some month_seq a jan_31 usando o operador %m+%.
  • Tente subtrair month_seq de jan_31 usando o operador %m-%.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# A sequence of 1 to 12 periods of 1 month
month_seq <- ___

# Add 1 to 12 months to jan_31
___ + ___

# Replace + with %m+%
___ ___ ___

# Replace + with %m-%
___ ___ ___
Editar e executar o código