我有很多文字文件。我需要从中提取日期。实际所需日期在文本文件中以如下格式出现:
此处随机文字
261 words 2008年2月18日22:25道琼斯国际新闻DJI英语
/ 这是文本文件中存在的行的示例语句,必须从中提取日期 /。
所以现在在这个问题实际上在单个文本文件中有很多这样的句子,但总是采用这种格式。
一种可能的算法可以是在上面句子中的“单词”字后面选择并显示三个单词。这三个人将成为约会对象。我需要R中的代码。
再次提到文本文件中的数据不在列和行中,而是段落。 子弹形式中 NOT 也存在。它是明智的。
答案 0 :(得分:1)
grep
以数字开头,然后是"单词" (允许空格),删除之前的所有内容"单词"并转换为"Date"
类。请注意,as.Date
会忽略日期之后的任何垃圾。
# test data
Lines <- "random text here
261 words 18 February 2008 22:25 Dow Jones International News DJI English
/This is a sample statement of line present in text file from which the
date has to be extracted/.
11 words 18 January 2009 20:20 Dow Jones International News DJI English
"
L <- readLines(textConnection(Lines))
pat <- "^ *\\d+ words "
words.lines <- grep(pat, L, value = TRUE)
as.Date(sub(pat, "", words.lines), format = "%d %B %Y")
,并提供:
[1] "2008-02-18" "2009-01-18"