r - R:日期提取的正则表达式
问题描述
我正在尝试使用 R 从 txt 文件中提取日期模式。我想我可以使用 str_extract 和正则表达式,但不能完全得到能够给我预期结果的正则表达式。
图案很喜欢
2016 年 1 月 21 日
2019 年 3 月 3 日
2013 年 4 月 15 日
等等。
我当前的设置是我将文本文件加载到 R 中并将其作为名为 mystring 的字符串变量,然后
pattern <- "January|February|March|May|June|July|August|September|October|November|December\\s\\d{1,2},\\s\\d{4}"
str_extract_all(mystring,pattern)
我认为我在正确的轨道上,但不能完全让它发挥作用。最终,我还想将提取的内容转换为默认的“2019-03-01”格式并将字符数据更改为日期,但我首先需要弄清楚如何提取数据。
解决方案
为什么不使用lubridate
'mdy()
函数,它将字符串转换为您可以根据需要解析的日期?
mdy("January 21, 2016")
[1] "2016-01-21"
这是一个包含多个随机日期的示例:
random_dates <- format(sample(seq(as.Date('2018/01/01'), as.Date('2020/01/01'), by="day"), 12), "%B %d, %Y")
tidy_dates <- mdy(random_dates)
从:
[1] "June 05, 2018" "December 23, 2019" "October 20, 2019" "July 17, 2019" "February 26, 2019" "January 25, 2018"
[7] "August 16, 2018" "February 08, 2019" "July 31, 2019" "May 05, 2019" "November 30, 2018" "March 28, 2018"
至:
[1] "2018-06-05" "2019-12-23" "2019-10-20" "2019-07-17" "2019-02-26" "2018-01-25" "2018-08-16" "2019-02-08" "2019-07-31" "2019-05-05"
[11] "2018-11-30" "2018-03-28"
推荐阅读
- java - 创建包装的 PreAuthorize 注释
- html - 选择所有元素,但不在具有特定类的父级中
- postgresql - 在 PostgreSQL 中,哪些类型可以先使用类型名称进行强制转换?
- xcode11 - Xcode 11 Beta 5:无法在 iPadOS 13.0 (17A5556d) 上运行的设备上预览
- ansible - 带有主机列表的 Ansible 模板,不包括当前主机
- angular - angluar 如何从 Spring Security 获取 csrf 令牌?
- r - Word文档段落内的格式化箭头
- jekyll - 如何使用 Jekyll/Liquid 对嵌套数据进行排序
- javascript - 如何为 Typescript 中的枚举分配多个值?
- python - 导入的 Python 模块在 VSCode 中不起作用