R 如何在字符向量中查找关键字?
我是r的新手,我正试图找到一种方法来对字符向量执行关键字搜索 我试图建立一个循环,将关键字与向量进行比较。当我运行循环时,我得到的只是代码的重复R 如何在字符向量中查找关键字?,r,search,vector,keyword,R,Search,Vector,Keyword,我是r的新手,我正试图找到一种方法来对字符向量执行关键字搜索 我试图建立一个循环,将关键字与向量进行比较。当我运行循环时,我得到的只是代码的重复 for(i in length(keywords)){ result = grep((keywords[i]), colours, value = TRUE) } 如果我在循环外运行grep,并用2代替I,我得到 [1] “绿-白-红”“灰-白-蓝” 这就是我想要的输出 colours = c("blue yellow green",
for(i in length(keywords)){
result = grep((keywords[i]), colours, value = TRUE)
}
如果我在循环外运行grep,并用2代替I,我得到
[1] “绿-白-红”“灰-白-蓝”
这就是我想要的输出
colours = c("blue yellow green",
"orange brown black",
"green white red",
"turquoise brown crimson",
"maroon purple navy",
"grey white blue",
"aquamarine seagreen olive",
"khaki lemon sienna")
keywords = c("lemon",
"white",
"khaki",
"blue",
"pink")
for(i in length(keywords)){
result = grep((keywords[i]), colours, value = TRUE)
}
代码运行后,我想创建一个名为result的新向量,在本例中,该向量包含以下元素:
"khaki lemon sienna"
"green white red"
"grey white blue"
"khaki lemon sienna"
"blue yellow green"
"grey white blue"
如果我们使用
for
循环,请确保在每次迭代中不替换“result”(结果),我将非常感谢您提供有关如何正确执行此操作的建议。另外,length
返回一个值,因此循环遍历它只是最后一个值keywords[length(keywords)]
,它可以是seq\u沿途
(或者1:length(keywords)
-更喜欢沿途
)
结果
result <- c()
for(i in seq_along(keywords)){
result <- c(result, grep((keywords[i]), colours, value = TRUE))
}
result
#[1] "khaki lemon sienna" "green white red" "grey white blue"
#[4] "khaki lemon sienna" "blue yellow green" "grey white blue"
unlist(lapply(keywords, function(k) colours[grepl(k, colours)]))
#OR
colours[unlist(lapply(keywords, grep, colours))]
#[1] "khaki lemon sienna" "green white red" "grey white blue" "khaki lemon sienna"
#[5] "blue yellow green" "grey white blue"