R: lubridate::fast_strptime returns 与 base::strptime 不同的值

R: lubridate::fast_strptime returns different value from base::strptime

我试图将大型数据框中的日期时间字符列转换为 POSIXct 以进行进一步处理。日期时间列的一个示例是:“Wed Jul 01 00:10:32 UTC 2020”。

由于行数很大(>500 万行),我尝试使用 fasttime 包中的 fastPOSIXct 函数来加快速度。我的计划是将日期时间字符转换成POSIXlt格式,然后使用fastPOSIXct函数处理。

在这个过程中,我发现base::strptimelubridate::fast_strptime返回了不同的结果:

> base::strptime("Wed Jul 01 00:10:32 UTC 2020", format = '%a %b %d %H:%M:%S UTC %Y', tz = "UTC")
[1] "2020-07-01 00:10:32 UTC"

> lubridate::fast_strptime("Wed Jul 01 00:10:32 UTC 2020", format = '%a %b %d %H:%M:%S UTC %Y', tz = "UTC")
[1] NA

为什么 fast_strptime 返回 NA?有没有更快的方法来加速这个格式转换过程?

谢谢!

这是因为fast_strptime函数不接受“a”作为适用格式。 如果删除工作日名称参数,它将 return 相同的结果。

fast_strptime("Jul 01 00:10:32 UTC 2020", format = '%b %d %H:%M:%S UTC %Y', tz = "UTC")