需要在R中的文本文件中的某个部分之后提取日期

时间:2016-05-31 18:19:50

标签: r text-mining

我有很多文字文件。我需要从中提取日期。实际所需日期在文本文件中以如下格式出现:

  1. 此处随机文字

  2. 261 words 2008年2月18日22:25道琼斯国际新闻DJI英语

  3. / 这是文本文件中存在的行的示例语句,必须从中提取日期 /。

    1. 再次随机发送文字
    2. 所以现在在这个问题实际上在单个文本文件中有很多这样的句子,但总是采用这种格式。

      一种可能的算法可以是在上面句子中的“单词”字后面选择并显示三个单词。这三个人将成为约会对象。我需要R中的代码。

      再次提到文本文件中的数据不在列和行中,而是段落子弹形式 NOT 也存在。它是明智的。

1 个答案:

答案 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"