gpt4 book ai didi

r - 从R中的日期解析多种格式的字符串

转载 作者:行者123 更新时间:2023-12-03 08:46:00 24 4
gpt4 key购买 nike

我在R中有约2000行。它是使用read_excel从Excel导入的。字段之一是日期字段:dob。它以字符串形式导入,并且具有三种格式的日期:

"YYYY-MM-DD"
"DD-MM-YYYY"
"XXXXX" (ie, a five-digit Excel-style date)

假设我将列视为 vector 。
dob <- c("1969-02-02", "1986-05-02", "34486", "1995-09-05", "1983-06-05",
"1981-02-01", "30621", "01-05-1986")

我可以看到我可能需要同时使用parse_date_time和as.Date的解决方案。

如果我使用parse_date_time:
dob_fixed <- parse_date_time(dob, c("ymd", "dmy"))

这将修复所有问题,但五位数字返回NA。

我可以使用as.integer和as.Date来固定五位数:
dob_fixed2 <- as.Date(as.integer(dob), origin = "1899-12-30")

理想情况下,我会先运行一个,然后运行另一个,但是因为每个都在不起作用的字符串上返回NA,所以我不能这样做。

有什么建议吗?我可以简单地在Excel中更改它们并重新导入,但是我觉得那是作弊!

最佳答案

我们在第一次运行后根据NA值创建一个逻辑索引,并使用该索引为第二次运行建立索引

i1 <- is.na(dob_fixed)
dob_fixed[i1] <- as.Date(as.integer(dob[i1]), origin = "1899-12-30")

关于r - 从R中的日期解析多种格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54275844/

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