如何基于部分匹配筛选列表中含“pizza”的元素?
解决方法
你当前的grep代码返回的是匹配元素的索引位置,而非元素本身,所以要获取包含"pizza"的元素,有以下几种简单实现方式:
方法1:使用grep的value=TRUE参数
直接让grep返回匹配的字符串,而非索引:
new_list = grep("pizza", my_list, value = TRUE)
方法2:通过索引提取元素
先获取匹配的索引,再用索引从原向量中筛选元素:
match_positions = grep("pizza", my_list) new_list = my_list[match_positions]
方法3:使用stringr包(tidyverse工具链)
如果习惯用tidyverse风格,可以用str_subset函数,专门用于筛选匹配模式的字符串:
library(stringr) new_list = str_subset(my_list, "pizza")
运行任意一种方法后,new_list都会得到你期望的结果:
> new_list [1] "https://pizza.ca/login/" "https://www.pizza123.ca/wp-content/"
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

