R - Grepl 向量上的向量

标签 r list vector lapply stringi

我有一个字符串向量 (v1),如下所示:

> head(v1)
[1] "do_i_need_to_even_say_it_do_i_well_here_i_go_anyways_chris_cornell_in_chicago_tonight"                                       
[2] "going_to_see_harry_sunday_happiness"                                                                                         
[3] "this_motha_fucka_stay_solid_foh_with_your_naieve_ass_mentality_your_synapsis_are_lacking_read_a_fucking_book_for_christ_sake"
[4] "why_twitter_will_soon_become_obsolete_http_www.imediaconnection.com_content_23465_asp"                                       
[5] "like_i_said_my_back_still_fucking_hurts_and_im_going_to_complain_about_it_like_no_ones_business_http_tumblr.com_x6n25amd5"   
[6] "my_picture_with_kris_karmada_is_gone_forever_its_not_in_my_comments_on_my_mysapce_or_on_my_http_tumblr.com_xzg1wy4jj"

还有另一个字符串向量 (v2),如下所示:

> head(v2)
[1] "here_i_go" "going" "naieve_ass" "your_synapsis"   "my_picture_with"   "roll" 

返回向量列表的最快方法是什么,其中每个列表项代表 v1 中的每个向量项,每个向量项都是正则表达式匹配,其中 v2 中的项目 出现在该 v1 项中,如下所示:

[[1]]
[1] "here_i_go"

[[2]]
[1] "going"

[[3]]
[1] "naieve_ass"      "your_synapsis"

[[4]]

[[5]]
[1] "going"

[[6]]
[1] "my_picture_with"

最佳答案

我想在 stringi 包中使用 stri_extract_all_regex() 保留另一个选项。您可以直接从 v2 创建正则表达式并在 pattern 中使用它。

library(stringi)

stri_extract_all_regex(str = v1, pattern = paste(v2, collapse = "|"))

[[1]]
[1] "here_i_go"

[[2]]
[1] "going"

[[3]]
[1] "naieve_ass"    "your_synapsis"

[[4]]
[1] NA

[[5]]
[1] "going"

[[6]]
[1] "my_picture_with"

关于R - Grepl 向量上的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48837538/

相关文章:

r - 包 `fitdistr()`中的 `fitdistrplus`函数拟合的幂律

r - 如何按字典顺序订购我的数据框

Python:将列表映射到字典

c++ - 为什么复制构造函数被调用了 25 次,而插入循环只迭代了 10 次?

r - 使用 do 时保留列

r - 如何在R中将Ensembl ID转换为基因符号?

java - 在非泛型类中采用 List 的泛型方法

wpf - 数据表列表/数组问题

c++ - 与 std::vector<>::size() 并发

c++ - 返回对模板 vector 的引用