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

R grep find multiple complete words in vector

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

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. 问题一: 有没有direct 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"