Automatizar abertura de arquivo XLSX sem corromper data

Pessoal, quero automatizar a abertura e análise dos dados da segurança pública de SP.

Eles estão nesse link: Segurança Pública - Transparência

Em março de 2023, a SSP-SP alterou a forma de divulgação.

Atualmente, cada tipo de crime tem um arquivo XLSX. Eles ficam nesse link: Segurança Pública - Transparência

Eu gostaria de automatizar um código para abrir as três bases diferentes de furtos e roubos (celulares, veículos e “outros objetos”), que já baixei na minha máquina.

Com o código abaixo eu consigo abrir cada arquivo, mas a coluna DATA_OCORRENCIA_BO acaba corrompida.

celulares ← readxl::read_xlsx(“data-raw/CelularesSubtraidos_2023.xlsx”)
veiculos ← readxl::read_xlsx(“data-raw/VeiculosSubtraidos_2023.xlsx”)
outros ← readxl::read_xlsx(“data-raw/OutrosObjsSubtraidos_2023.xlsx”)

A data, quando abro a planilha no Excel, está no formato DD/MM/AAAA.

Quando abro no RStudio, ela fica naquele formato estranho de cinco dígitos seguidos.

Já tentei resolver com o lubridate::dmy e o lubridate::ymd, mas a coluna fica só com NAs.

Já tentei com mutate e as.Date(), mas dá o seguinte erro:

Error in .fun():
:information_source: In argument: DATA_OCORRENCIA_BO = as.Date(DATA_OCORRENCIA_BO).
Caused by error in charToDate():
! string de caracteres não é um formato padrão não ambíguo

Não queria fazer nenhum tipo de ajuste manual nos arquivos, como abrir cada um, salvar em CSV ou ajustar a classe das colunas.

Alguém sabe se consigo resolver o problema da data corrompida diretamente no R, por favor?

Obrigada desde já!

Olá! Respondemos esta dúvida em live: Respondendo perguntas #1 - YouTube

Uma pode ser essa aqui:

veiculos <- readxl::read_xlsx("VeiculosSubtraidos_2023.xlsx") |> 
  dplyr::mutate(
    DATA_OCORRENCIA_BO = DATA_OCORRENCIA_BO |> 
      as.numeric() |> 
      janitor::excel_numeric_to_date(),
    DATAHORA_IMPRESSAO_BO = DATAHORA_IMPRESSAO_BO |> 
      as.numeric() |> 
      janitor::excel_numeric_to_date(),
  )

Perfeito!

Vi a explicação na live e testei o código, deu certo na hora!

Muito obrigada, Fer!