首页 > 解决方案 > lubridate::round_date () 在大型数据集上给出全零

问题描述

我正在尝试使用以下代码将 lubridate::round_date () 用于大数据集(约 3 百万行 * 23 列)上的日期时间列:

time_bin <- "1 hour"    
data %<>% mutate(rounded_time = lubridate::round_date(UTC_datetime, time_bin),
                 time_format = strftime(rounded_time,format = "%Y-%m-%d %H:%M:%S"))%>% droplevels()

在子采样数据集(1000 行)上运行此代码时:

data<-data[1:1000,]

一切正常,时间四舍五入到最接近的小时:

head(data)[,25]

[1] “2019-10-01 04:00:00” “2019-10-01 05:00:00” “2019-10-01 06:00:00” “2019-10-01 07:00:00” " [5] "2019-10-01 09:00:00" "2019-10-01 10:00:00"

而在整个数据集上运行代码时,我会得到日期和时间应该是全零:

head(data)[,25]

[1] “2019-10-01 00:00:00” “2019-10-01 00:00:00” “2019-10-01 00:00:00” “2019-10-01 00:00:00” " [5] "2019-10-01 00:00:00" "2019-10-01 00:00:00"

任何想法可能出了什么问题以及如何解决它?

谢谢!伊丹

标签: rdatetimeroundinglubridate

解决方案


推荐阅读