R grep在向量中找到多个完整的单词

标签 r intersect

我有一个字符串向量,比如说:

vect<-c("oxidor magnesio","oxido magnesio","oxido calcio", "oxidante","oxido calcio magnesio","magnesio oxido")

我想找出 两个“oxido”“magnesio” 的出现次数。 我正在做的是

intersect(grep("\\boxido\\b",vect),grep("\\bmagnesio\\b",vect))

但是,

  1. 问题一:有没有直接grep命令可以实现?
  2. 问题 2:假设我想找到这两个词的出现次数,但顺序是给定的(例如,“oxido”后跟“magnesio”,所以正确答案是 25)。命令是什么?

谢谢,

最佳答案

编辑。 答案 1:我知道 grepl 可以做到这一点,例如:

> grepl("(?=.*\\boxido\\b)(?=.*\\bmagnesio\\b)", vect, perl = TRUE)
[1] FALSE  TRUE FALSE FALSE  TRUE  TRUE

答案2:

> grep("\\boxido\\b.*\\bmagnesio\\b",vect,v=T)
[1] "oxido magnesio"        "oxido calcio magnesio"

关于R grep在向量中找到多个完整的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464697/

相关文章:

r - 有没有一种整洁的方法来改变小标题中的单个细胞?

r - 如何在不重新缩放的情况下调整热图的大小?

c# - 矩形重载方法问题

python - 如何通过自定义比较函数找到集合交集?

r - 使用 futile.logger 记录所有警告

R - 在循环中设置执行时间限制

linq - 如何使两个以上的值集/列表相交?

php - 单表 INTERSECT 替代方案

r - geom_text 仅在堆积条形图的顶部