gpt4 book ai didi

r - 在 R 中将字符串转换为日期的最快方法

转载 作者:行者123 更新时间:2023-12-01 07:00:05 27 4
gpt4 key购买 nike

我想在 R 中以字符串形式(例如:“09/20/2019”)转换大约 1 亿个日期.

正在做

a = "09/20/2019"       
a <- as.Date(a, "%m/%d/%Y")

好像有点慢。有没有更快的方法来实现这种转换?

(尝试了 fasttime 包,但它需要以下顺序: year, month, day ...因此原始字符串需要一些进一步的操作)

最佳答案

使用查找表方法 (1) 比 as.Date 快 38 倍对于此示例数据。对于此示例数据,方法 (2) 仍然快 18 倍,如果您没有生成 d 的好方法,则更方便。 .当然,您的数据的详细信息会影响实际实现的加速。

# test data
set.seed(123)
d <- format(as.Date("2000-01-01") + 1:100, "%m/%d/%Y")
dd <- sample(d, 1000000, replace = TRUE)

# 1 - lookup table
system.time(as.Date(d, "%m/%d/%Y")[match(dd, d)])
## user system elapsed
## 0.06 0.02 0.07

# 2 - table lookup generating u on the fly instead of d
system.time({u <- unique(dd); as.Date(u, "%m/%d/%Y")[match(dd, u)] })
## user system elapsed
## 0.13 0.03 0.15

# 3 - as.Date
system.time(as.Date(dd, "%m/%d/%Y"))
## user system elapsed
## 2.61 0.07 2.67

关于r - 在 R 中将字符串转换为日期的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032064/

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