1

我试图从以下文本中提取日期。不幸的是,它一直给我警告,结果是NA

我有以下文字:

"IRA-401K Investment Assets Under Management (AUM)  As of July 31, 2018 BMG Funds  
$217,743,573 BMG BullionBars  $45,176,561 TOTAL  $262,920,134 Physical Holdings Download 
Scotiabank BMG BullionBars List Download Brinks BMG BullionBars List Holdings by Ounces As 
of July 31, 2018  Gold Bars 21,132.496 Silver Bars 453,531.574 Silver Coins 
80,500 Platinum Bars"

文本包含以下日期:2018 年 7 月 31 日。这些日期在文本中出现两次。

我使用以下代码从文本中提取日期。

test_take <- lapply(cleanurl_text, parse_date_time, orders = "mdy", 
             locale = Sys.setlocale('LC_TIME', locale = "English_Canada.1252"))

我收到以下错误消息:

警告消息:所有格式都无法解析。未找到格式。

当我包括精确 = TRUE

test_take <- lapply(as.character(cleanurl_text), parse_date_time, orders = "mdy", 
       locale = Sys.setlocale('LC_TIME', locale = "English_Canada.1252"), exact = TRUE)

我收到以下警告:

警告消息:1 未能解析。

结果对象仍然包含NA.

4

1 回答 1

0

以下正则表达式可以提取发布格式的日期。

pattern <- paste(month.name, collapse = "|")
pattern <- paste0("(", pattern, ")\\s\\d{1,2}.{1,2}\\d{4}")

m <- gregexpr(pattern, cleanurl_text)
regmatches(cleanurl_text, m)
#[[1]]
#[1] "July 31, 2018" "July 31, 2018"

请注意,这可以在一行代码中完成regmatches(gregexpr(.)),但我选择了两行代码以使其更具可读性。

于 2018-08-10T15:06:44.113 回答