Вот один подход, который перебирает ключевые слова и сопоставляет предложения, используя grepl
.В зависимости от того, насколько чисты данные предложения, вы можете рассмотреть agrepl
, который допускает нечеткое сопоставление (но может также привести к ложным срабатываниям).
df <- data.frame(sentences=c("I love football", "Rugby is a tough game", "Hello World"))
keywords <- c("tennis", "football", "rugby")
cbind(df, sapply(keywords, function(x) grepl(x, df$sentences, ignore.case = TRUE)))
sentences tennis football rugby
1 I love football FALSE TRUE FALSE
2 Rugby is a tough game FALSE FALSE TRUE
3 Hello World FALSE FALSE FALSE
Перечитывание вашего поста, если вы просто хотитеВы можете заниматься любым видом спорта, а не отдельным видом спорта:
cbind(df, sports = rowSums(sapply(keywords, function(x) grepl(x, df$sentences, ignore.case = TRUE))) > 0)
sentences sports
1 I love football TRUE
2 Rugby is a tough game TRUE
3 Hello World FALSE