Я в настоящее время извлекаю все числа, появляющиеся в строке, как показано ниже:
library(data.table)
library(stringr)
Data<-data.table(
X=sample(1:10),
Y=c("before 10 pm","1-3 am","at 3pm","after 4pm","on 12:00am","at 16:00","between 12-12:30","at 1PM","1.30-2pm","11.00AM - 1.00PM")
)
fun1<-function(x){
ge<-gregexpr("(^-?|(?<=\\D)-)?(\\d\\.?\\d*?)+",x,perl=T)
return(as.numeric(sapply(regmatches(x,ge),paste0,collapse="")))
}
Data[,parsed:=lapply(Y,fun1)]
Но это извлекает числа, и мне нужно разделить их разделителем. Например, 1.30-2pm должны быть проанализированы в 1_30_2В конце концов мне нужно получить временное окно из этих обзоров.Этот подход хорош?