Próbuję utworzyć podzbiór ramki danych artykułów informacyjnych, które wymieniają co najmniej jeden element zestawu słów kluczowych lub fraz.Znajdź dopasowania wektora ciągów w innym wektorze ciągów znaków
# 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
Biorąc wektor kluczowych, podzbiór wierszy powinien zawierać 1, 2 i 4, ponieważ te rzędy zawierają jeden lub większą liczbę elementów wektora.
Ani %in
ani grepl()
pracy, ponieważ %in%
wydaje się wymagać, aby każde słowo w ramce danych należy wektorowy (articles$text %in% keywords
wyniki w czterech FALSE
s), a grep()
wydaje się nie być w stanie obsłużyć wektorowy wzory (grep(keywords, articles$text)
daje błąd). Żadna z tych funkcji nie działa dobrze w wielu wymiarach (tzn. Łatwo byłoby wyszukać jedno słowo we wszystkich wierszach, ale nie wszystkie trzy w tym samym czasie).
Jaki jest najlepszy sposób wyszukiwania i wybierania wszystkich wierszy w ramce danych zawierających co najmniej jeden element wektora słów kluczowych?
Co zrobić, jeśli słowa kluczowe mają znaki trzeba w nich uciec? Czy trzeba ręcznie unikać wszystkich znaków specjalnych we wszystkich słowach kluczowych? – Chill2Macht