Maybe so:
df = data.frame(text=c("This string is not that long", "This string is a bit longer but still not that long", "This one just helps with the example"))
keywords <- c("not that long", "This string", "example", "helps")
df$keywords = lapply(df$text, function(x) {keywords[sapply(keywords,grepl,x)]})
Conclusion:
text keywords
1 This string is not that long not that long, This string
2 This string is a bit longer but still not that long not that long, This string
3 This one just helps with the example example, helps
lapply df$text, lapply keywords, df$text. , , , , :
df$keywords = lapply(df$text, function(x) {keywords[sapply(keywords, function(y){grepl(y,x)})]})
, !