Sto provando a creare un sottoinsieme di un frame di dati di articoli di notizie che menzionano almeno un elemento di un insieme di parole chiave o frasi.Trova corrispondenze di un vettore di stringhe in un altro vettore di stringhe
# Sample data frame of articles
articles <- data.frame(id=c(1, 2, 3, 4), text=c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod", "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,", "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo", "consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse"))
articles$text <- as.character(articles$text)
# Sample vector of keywords or phrases
keywords <- as.character(c("elit", "tempor incididunt", "reprehenderit"))
# id text
# 1 1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
# 2 2 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
# 3 3 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
# 4 4 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
Dato il vettore di parole chiave, il sottoinsieme dovrebbe contenere righe 1, 2 e 4, dal momento che tali righe contengono uno o più degli elementi del vettore.
Né %in
né grepl()
lavoro, poiché %in%
sembra richiedere che ciascuna parola nel frame di dati vettorializzare (articles$text %in% keywords
risultati in quattro FALSE
s), e grep()
non sembra essere in grado di gestire modelli vettorializzate (grep(keywords, articles$text)
dà un errore). Nessuna delle due funzioni sembra funzionare bene su più dimensioni (vale a dire sarebbe facile cercare una parola in tutte le righe, ma non tutte e 3 nello stesso momento).
Qual è il modo migliore per trovare e selezionare tutte le righe del frame di dati che contengono almeno uno degli elementi del vettore di parole chiave?
Cosa fare se le parole chiave hanno caratteri che bisogno di essere sfuggiti in loro? Si deve sfuggire manualmente tutti i caratteri speciali in tutte le parole chiave? – Chill2Macht