cbind(dat,Keywords=do.call(paste,c(sep=",",Map(sub,paste0(".*(",paste(keywords,collapse="|"),").*"),"\\1",dat,TRUE))))
Title Abstract Keywords
1 Rstudio Keyword1 A interesting program language keyword2 Keyword1,keyword2
2 Python Keyword3 A interesting program keyword3 language Keyword3,keyword3
, где keywords=paste0("Keyword",1:3)
и
dat=read.table(text="Title Abstract
'Rstudio Keyword1' 'A interesting program language keyword2'
'Python Keyword3' 'A interesting program keyword3 language'",h=T,strin=F)
Строка может показаться длинной: Разбивка:
a=paste0(".*(",paste(keywords,collapse="|"),").*")
b=do.call(paste,c(sep=",",Map(sub,a,"\\1",dat,TRUE)))
cbind(dat,keywords=b)
Title Abstract keywords
1 Rstudio Keyword1 A interesting program language keyword2 Keyword1,keyword2
2 Python Keyword3 A interesting program keyword3 language Keyword3,keyword3