gpt4 book ai didi

r - 加速将 200 万行日期字符串转换为 POSIX.ct

转载 作者:行者123 更新时间:2023-12-04 00:36:00 26 4
gpt4 key购买 nike

我有一个 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调用使其成为 xts 系列,其中包含 csv 中的其余数据。

这 100% 有效。它只是非常非常缓慢。我试过并行运行它(它没有做任何事情;如果有的话它会使情况变得更糟)。我所说的“慢”是什么意思?
 user    system   elapsed 
155.246 16.430 171.650

那是在 3GhZ、16GB ram 2012 mb pro 上。我可以在 Win7 机器上具有 32GB RAM 的类似处理器上获得大约一半

我敢肯定有人有更好的主意 - 我愿意通过 Rcpp 接受建议等等 但是, 理想情况下,该解决方案适用于 csv 而不是其他一些方法,例如设置数据库 .话虽如此,我将通过任何可以提供最快转换的方法来执行此操作。

我会非常感激任何帮助。提前致谢。

最佳答案

你想要小而简单的fasttime Simon 的包以最快的方式执行此操作——不调用时间解析函数,而仅使用 C 级字符串函数。

它支持的格式不如 strptime .事实上,它甚至没有格式字符串。但是格式良好的 ISO 格式变体,即 yyyy-mm-dd hh:mm:ss.fff会起作用,您的 /分隔符也可能起作用。

关于r - 加速将 200 万行日期字符串转换为 POSIX.ct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com