我有一个数据框,其中的日期时间列以 4 小时为间隔。当时间部分应该是00:00:00
(小时:分钟:秒)时,日期中缺少时间。当时间缺失时如何添加00:00:00
日期?
示例数据
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
不过,我可以在下面使用它,我的真实数据集缺少行,所以我正在寻找一种替代方案,可以00:00:00
在没有时间时添加。
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
创建于 2024-01-16,使用reprex v2.0.2
你可以使用
lubridate::as_datetime
: