我有一个 csv,其中包含大约 200 万行日期字符串,格式如下:
2012/11/13 21:10:00
让我们称之为csv$Date.and.Time
我想尽快将这些日期(及其随附数据)转换为 xts
我已经编写了一个脚本,可以很好地执行转换(见下文),但它非常慢,我想尽可能加快速度。
这是我目前的方法。有没有人对如何使这个更快有任何建议?
dt <- as.POSIXct(csv$Date.and.Time,tz="UTC")
idx <- format(dt,tz=z,usetz=TRUE)
因此脚本将这些日期字符串转换为POSIX.ct
. 然后它使用format
(z
是代表我要转换的 TZ 的变量) 进行时区转换。然后,我定期xts
调用以将其与 csv 中的其余数据一起设为 xts 系列。
这 100% 有效。它只是非常非常缓慢。我试过并行运行它(它什么也没做;如果有的话,它会使情况变得更糟)。“慢”是什么意思?
user system elapsed
155.246 16.430 171.650
那是在 3GhZ、16GB ram 2012 mb pro 上。我可以在 Win7 机器上使用 32GB RAM 的类似处理器获得大约一半
我敢肯定有人有更好的主意-我愿意接受Rcpp
等方面的建议。但是,理想情况下,该解决方案适用于 csv 而不是其他方法,例如设置数据库。话虽如此,我将通过任何能提供最快转换的方法来做到这一点。
我会非常感谢任何帮助。提前致谢。