извлеките строку из функции grep в R

#r #sentence

Вопрос:

Я ищу в некоторых предложениях некоторые слова, используя этот код

 sent <- c()
 for (w in my_words){
    my_selected_sentences <- grep(paste0('\b', w, '\b'), my_sentences, ignore.case = TRUE, value = TRUE, perl = TRUE)
    sent <- c(sent, my_selected_sentences)
  }
 

Теперь я хотел бы добавить в вектор «отправленное» слово или слова, которые были извлечены. Например

 [1] here is the selected sentence.---"the", "sentence"
 

Как я могу это сделать? Спасибо!

Ответ №1:

Вы можете сделать что-то подобное (использовал искусственный пример):

 my_sentences <- c('hi there','will you do it', 'i will go home', 'salt is good for health')
my_sentences_df <- data.frame(sentences = my_sentences, words_retrieved = "", stringsAsFactors = FALSE)
my_words <- c('will','salt','home')
sent <- c()
for (w in my_words){
  my_selected_sentences <- grep(paste0('\b', w, '\b'), my_sentences, ignore.case = TRUE, value = TRUE, perl = TRUE)
  my_sentences_df[grep(w, my_sentences_df$sentences),"words_retrieved"] <- 
    paste(my_sentences_df[grep(w, my_sentences_df$sentences),"words_retrieved"], w, sep = ", ")
  sent <- c(sent, my_selected_sentences)
}
my_sentences_df$words_retrieved <- sub('.', '', my_sentences_df$words_retrieved)
writeLines(with(my_sentences_df, paste0(my_sentences, " ---", words_retrieved)))