1

我需要做以下作业作为家庭作业,我正在努力寻找正确的答案:

编写一个函数,find.names()它接受两个参数:df,一个数据框,带有列名和文本;和str,一个字符串。df$text您的函数应该查找包含单词的所有 Wikipedia 条目 (in ) str,忽略字符的大小写,并返回相应的个人名称 (in 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. 我知道我错过了一些东西。

提前感谢您的帮助。

4

1 回答 1

2

我们可以利用ignore.case = TRUEgrep

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

   }

find.names(wiki, "Carnegie Mellon")
于 2018-12-13T15:52:41.933 回答