繁体   English   中英

从字符串(URL)中提取日期

[英]Extracting Date from a string (URL)

我正在尝试从40k URL中提取日期。 网址是这样的:

1) ht-p://mashable.com/2014/09/19/shonda-rhimes-new-york-times/
2) http://mashable.com-2014/11/02/friendly-robbers-snl-sketch/

我正在使用这个:

ymd(as.numeric(gsub("\\D", "", df$URL)))  

可以很好地处理1或2条记录,但可以处理4万条记录

警告消息:4714解析失败。 它给出了这些4714值的NA。

我想念什么吗?

使用str_extract form stringr包:

library(stringr)
as.Date(str_extract(txts,"[0-9]{4}/[0-9]{2}/[0-9]{2}"),"%Y/%m/%d")
## [1] "2014-09-19" "2014-11-02"

txts在哪里:

txts <- c("ht-p://mashable.com/2014/09/19/shonda-rhimes-new-york-times/",
"http://mashable.com-2014/11/02/friendly-robbers-snl-sketch/")

尝试这个

library(stringr)
sapply(str_extract_all(string = df$URL,pattern = "[[:digit:]]+"),function(t) paste0(tail(t,n = 3),collapse = "/"))

直接使用stringi基础的stringr

library(lubridate)
library(stringi)
library(magrittr)

c("ht-p://mashable.com/2014/09/19/shonda-rhimes-new-york-times/",
  "http://mashable.com-2014/11/02/friendly-robbers-snl-sketch/") -> URLs

URLs %>% 
  stri_extract_all_regex("([[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2})", simplify=TRUE) %>% 
  ymd(.[,1])


URLs %>% 
  stri_match_all_regex("([[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2})") %>% 
  lapply("[", 2) %>% 
  unlist() %>% 
  ymd()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM