我有一个字符串向量,比如说:
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))
但是,
- 问题一:有没有直接grep命令可以实现?
- 问题 2:假设我想找到这两个词的出现次数,但顺序是给定的(例如,“oxido”后跟“magnesio”,所以正确答案是
2
和5
)。命令是什么?
谢谢,
最佳答案
编辑。
答案 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/