Eu tenho um dataframe com uma coluna de data e hora espaçada em intervalos de 4 horas. Quando o componente de hora deveria ser 00:00:00
(hora: minuto: segundo), a hora está faltando na data. Como posso adicionar 00:00:00
a data quando falta tempo?
Dados de exemplo
dat <- data.frame(
dateTime = c('2016-07-01',
'2016-07-01 04:00:00',
'2016-07-01 08:00:00',
'2016-07-01 12:00:00',
'2016-07-01 16:00:00',
'2016-07-01 20:00:00',
'2016-07-02')
)
str(dat)
#> 'data.frame': 7 obs. of 1 variable:
#> $ dateTime: chr "2016-07-01" "2016-07-01 04:00:00" "2016-07-01 08:00:00" "2016-07-01 12:00:00" ...
dat
#> dateTime
#> 1 2016-07-01
#> 2 2016-07-01 04:00:00
#> 3 2016-07-01 08:00:00
#> 4 2016-07-01 12:00:00
#> 5 2016-07-01 16:00:00
#> 6 2016-07-01 20:00:00
#> 7 2016-07-02
Eu poderia usar isso abaixo, no entanto, meu conjunto de dados real tem linhas faltando, então estou procurando uma alternativa onde possa adicionar 00:00:00
quando não houver tempo.
library(tidyverse)
dat <- dat %>%
mutate(dateTime_cor = seq(from = as.POSIXct("2016-07-01 00:00:00"),
to = as.POSIXct("2016-07-02 00:00:00"),
by = "4 hours")) %>%
select(-dateTime)
str(dat)
#> 'data.frame': 7 obs. of 1 variable:
#> $ dateTime_cor: POSIXct, format: "2016-07-01 00:00:00" "2016-07-01 04:00:00" ...
dat
#> dateTime_cor
#> 1 2016-07-01 00:00:00
#> 2 2016-07-01 04:00:00
#> 3 2016-07-01 08:00:00
#> 4 2016-07-01 12:00:00
#> 5 2016-07-01 16:00:00
#> 6 2016-07-01 20:00:00
#> 7 2016-07-02 00:00:00
Criado em 16/01/2024 com reprex v2.0.2
Você poderia usar
lubridate::as_datetime
: