r - 如何在字符向量中找到关键字?
问题描述
我是 r 的新手,我正在尝试找到一种针对字符向量执行关键字搜索的方法。
我试图建立一个循环来将关键字与向量进行比较。当我运行循环时,我得到的只是代码的重复。
for(i in length(keywords)){
result = grep((keywords[i]), colours, value = TRUE)
}
如果我在循环之外运行 grep 并将 i 替换为 say 2 我得到
[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"
我将非常感谢有关如何正确执行此操作的建议
解决方案
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"
推荐阅读
- youtube - 是否可以通过 API 上传 YouTube 短片?
- c# - 如何将文本框保存在文本框本身并将其关闭并保存
- regex - 检查 gohugo 中的当前路径是否与正则表达式匹配
- html - YouTube 的 get_video_info 端点不再工作
- c# - 单击按钮时如何刷新collectionView
- javascript - Netsuite 保存的搜索 - 从案例公式(日期/时间)格式中减去日期之间的差异
- rust - Rust GTK 3 无法使用搜索栏
- python-3.x - 如何从python类列表中删除元素
- payeezy - 某些客户端的错误 hmac_helper#196 但并非所有客户端
- java - PulsarClientException:连接已关闭 - 已验证网络、防火墙、Pulsar 令牌和角色正确