【发布时间】:2022-01-23 18:16:40
【问题描述】:
readr 包有一个名为 parse_number 的函数,它返回 string 中的数字:
readr::parse_number("Hello 2022!")
[1] 2022
是否有类似的方法可以从string 返回日期? readr 有一个名为 parse_date 的函数,但它做了一些不同的事情:
readr::parse_date("X2018-01-11_poland")
Warning: 1 parsing failure.
row col expected actual
1 -- date like X2018-01-11_poland
[1] NA
期望的输出:
# the raw string is "X2018-01-11_poland"
2018-01-11
附:我对使用正则表达式不感兴趣。
【问题讨论】:
-
只需指定
format,根据strptime()约定:readr::parse_date("X2018-01-11_poland", format = "X%Y-%m-%d_poland")。 -
您对为此使用正则表达式的反感究竟是什么?精心设计的正则表达式可以对大多数正则表达式问题具有鲁棒性,并在性能和弹性方面提供相当不错的类日期提取结果。