Como formatar um "chr" para "date" no formato "mm/YYYY"?

Prezadxs, olá!
Estou com uma dúvida simples porém não encontrei uma forma de resolvê-la.
Sempre tenho problemas quando trabalho com datas, contudo, uso de base a própria página do Curso-R e outros materiais para poder efetuar as modificações que preciso (principalmente usando lubridate).
Entretanto, dessa vez não consigo resolver, segue dúvida:

Tenho uma coluna como “chr” com datas no seguinte formato “2019-01”. Gostaria de converter essa coluna para a classe “date”, mantendo o formato de “01-2019” , “mês/ano”.

Segue exemplo:

 # Data exemplo
 datastring <- "2019-02"
 
 # Usando base R
 as.Date(datastring, format = "%Y/%m")

Isso me resulta um “NA”. Tentei com lubridate e também não consegui resultado. Contudo, caso eu tenha uma data com o dia, “2019-02-01” , a função ymd() consegue resolver meu problema.

Alguém sabe uma forma simples de resolver isso ou consegue me explicar qual erro estou cometendo?
Muito obrigado pela atenção.

maykongpedro,

Infelizmente não conheço uma solução usando só {lubridate}, mas abaixo vai a solução mais simples que encontrei:

library(lubridate)

# Data exemplo
datastring <- "2019-02"

# Primeiro dia do mês
ym(datastring)
#> [1] "2019-02-01"

# Formatando
format(ym(datastring), "%Y/%m")
#> [1] "2019/02"

Created on 2021-01-12 by the reprex package (v0.3.0)

1 curtida

Acredito que me expressei mal, a solução poderia ser por qualquer meio ou pacote haha.
Funcionou perfeitamente! A chave era a função “format”.
Muito obrigado!