对于日期时间,fasttime 提供了非常快速的解析到 POSIXct。
library('fasttime')
library('lubridate')
library('microbenchmark')
# parse character to POSIXct
Sys.setenv(TZ='UTC')
test <- rep('2011-04-02 11:01:00',1e4)
microbenchmark(
test1 <- fastPOSIXct(test),
test2 <- fast_strptime(test,format='%Y-%m-%d %H:%M:%S'),
test3 <- as.POSIXct(test, format='%Y-%m-%d %H:%M:%S'),
test4 <- ymd_hms(test),
times=100)
Unit: microseconds
expr min lq mean median uq max
test1 <- fastPOSIXct(test) 663.123 692.337 1409.448 701.821 712.4965 71231.585
test2 <- fast_strptime(test, format = "%Y-%m-%d %H:%M:%S") 1026.342 1257.508 1263.157 1264.928 1273.8145 1366.438
test3 <- as.POSIXct(test, format = "%Y-%m-%d %H:%M:%S") 9865.265 10060.450 10154.651 10145.551 10186.3030 13358.136
test4 <- ymd_hms(test) 13990.206 17152.779 17278.654 17308.347 17393.6625 22193.544
是否有与日期Date
等价的东西?lubridate包提供了一些解析器,但 fast_strptime 将日期转换为 POSIXct(不适用于日期)。将 POSIXct 转换为 Date 太长了。
考虑到解析为POSIXct的速度如此之快,我认为应该有一种与Date同样快速的解决方案
是否有一个快速打包的替代品?