Функция для поиска различных строк - PullRequest
0 голосов
/ 13 декабря 2018

Мне нужно выполнить следующее как домашнее задание, и я изо всех сил пытаюсь найти правильный ответ:

Напишите функцию find.names(), которая принимает два аргумента: df, фрейм данных, сназвание столбца и текст;и str, строка.Ваша функция должна найти все записи Википедии (в df$text), которые содержат слово str, игнорируя регистры символов, и возвращать соответствующие имена индивидуумов (в df$names) в виде строкового вектора, отсортированного в алфавитном порядке.,Например, find.names(wiki, "Carnegie Mellon") должен возвращать c("Alan Fletcher (composer)", "John Tarnoff", "Joshua Bloch").

Вот мой начальный код:

find.names = function(df,str){
grep("str|Str", df$text, value=TRUE)
return(df$names)
}

Должен ли str быть в кавычках?Я не уверен, как это выразить.Или for петля?Я пробую приведенный пример, find.names(wiki, "Carnegie Mellon), и он возвращает NULL.Я знаю, что что-то упустил.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 13 декабря 2018

Мы можем использовать ignore.case = TRUE в grep

find.names = function(df, str){
     df$name[grep(str, df$text, ignore.case = TRUE)]

   }

find.names(wiki, "Carnegie Mellon")
...