作为家庭作业,我需要做以下事情,我正在努力寻找正确的答案:
编写一个函数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
。我知道我缺少什么。
预先感谢您的帮助。
答案 0 :(得分:2)
我们可以在ignore.case = TRUE
中使用grep
find.names = function(df, str){
df$name[grep(str, df$text, ignore.case = TRUE)]
}
find.names(wiki, "Carnegie Mellon")