将叙述形式的日期范围转换为 .xts 日期

Convert range of dates in narrative form to .xts dates

我有一个字符串“April 20, 2020 - April 24, 2020”,我想将它转换成两个单独的字符串。这里有两个问题:(1)认识到叙述“April”是第 4 个月,以及(2)这个字符串中有两个不同的日期。

我查看了以下内容以及其他内容,但没有看到我的答案:

[extract dates from date range][1],
[select a range of dates][2],
[convert dates to range][3]

我也研究过“解析”,但这似乎不是答案。

这样的东西行得通吗?

string <- "April 20, 2020 - April 24, 2020"
dates <- as.Date(strsplit(string, ' - ')[[1]], '%B %d, %Y')
dates
#[1] "2020-04-20" "2020-04-24"

如果您不想记住格式,也可以使用 lubridate::mdy

dates <- lubridate::mdy(strsplit(string, ' - ')[[1]])

请注意,这是 locale-dependent,您的语言环境应该是英语。

我们可以使用anydate

library(anytime)
anydate(strsplit(string, "\s*-\s*")[[1]])
#[1] "2020-04-20" "2020-04-24"