[英]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.