从R中的Text中提取任何格式的日期

时间:2018-05-03 11:52:57

标签: r datetime text-mining text-extraction

我想从给定文本中提取日期,日期可以是任何格式 2018年4月10日,10-04-2018,10/04 / 201,2018 / 04/10,04.10.2018和其他格式一样....

我有新闻数据,想要从文本中提取日期

例如:我的朋友将于2018年7月10日或10/07/2018来临

我想从给定的文字中提取日期

请帮助

提前致谢

4 个答案:

答案 0 :(得分:2)

我们使用str_extract提取它,然后使用anydate获取格式

library(anytime)
library(stringr)
anydate(str_extract_all(str1, "[[:alnum:]]+[ /]*\\d{2}[ /]*\\d{4}")[[1]])
#[1] "2018-07-10" "2018-10-07"

数据

str1 <- "My Friend is coming on july 10 2018 or 10/07/2018"

答案 1 :(得分:0)

提出的解决方案由于以下原因而失败,没有明显的原因:

txt =“实时报道,美国薪资数据显示失业率大幅上升,此前综合PMI数据显示,英国商业活动在Covid-19锁定后三月跌至纪录低位” parsedate :: parse_date(txt)

答案 2 :(得分:0)

parsedate可以很好地解决这些问题。

library(parsedate)

dates = c("April 10 2018", "10-04-2018", "10/04/2018", "2018/04/10", "04.10.2018")
parsedate::parse_date(dates)

[1] "2018-04-10 UTC" "2018-10-04 UTC" "2018-10-04 UTC" "2018-04-10 UTC" "2018-10-04 UTC"

答案 3 :(得分:0)

解析是一个不错的程序包,但它失败并显示以下字符串

txt = "Live coverage as American payrolls data shows big rise in unemployment, after composite PMI data shows UK business activity sunk to a record low in March following the Covid-19 lockdown" 
> parsedate::parse_date(txt) [1] "2020-03-19 UTC"
[1] "2020-03-19 UTC"