Lubridate函数将字符串转换为日期。字符串示例:“ 2020年4月21日”或“ 2020年4月21日”

时间:2020-08-08 18:52:54

标签: r lubridate

我想知道可以使用什么lubridate函数将这些字符串转换为日期格式。

在上面的字符串中使用as_date会发出警告:

警告信息: 所有格式均无法解析。找不到格式

但是,我可以使用as_datetime函数将字符串转换为:“ 2020 Apr 10 11:22:23”。

3 个答案:

答案 0 :(得分:3)

对于lubridate,重要的只是日,月,年的顺序。如果我们有多种格式,请使用parse_date_time

library(lubridate)
parse_date_time(date1, orders = c('dmy', 'mdy'))
[1] "2020-04-21 UTC" "2020-04-21 UTC"

数据

date1 <- c("21 Apr 2020", "April 21, 2020")

答案 1 :(得分:3)

这不是{lubridate,但是:如果您事先不知道顺序(dmy vs mdy vs ymd),或者可以将其混合在单个矢量中,则可以尝试{{ 1}}程序包:

anytime

(显然anytime::anydate(c("21 Apr 2020","April 21, 2020")) ## [1] "2020-04-21" "2020-04-21" 也可以处理混合格式:似乎可以稍微检查一下要检查的格式。)

答案 2 :(得分:1)

就是这么简单。谢谢大家:)

library(lubridate)

a <- "21 Apr 2020"
day1 <- dmy(a)

b <- "April 21, 2020"
day2 <- mdy(b)