首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在术语向量和文本向量上迭代grepl?

我如何在术语向量和文本向量上迭代grepl?
EN

Stack Overflow用户
提问于 2022-02-03 16:56:48
回答 1查看 23关注 0票数 0

我有一个术语向量和一些文本

代码语言:javascript
复制
terms <- c("this","that","those")
text <- c("this is some text","here is more text with those words","more text than that other one","this ends it")

我想使用grepl搜索所有文本中的所有术语,并按by文本返回T/F。我试过了

代码语言:javascript
复制
sapply(text,grepl,pattern = terms)

但这只是给出了第一学期的答案

代码语言:javascript
复制
sapply(text,grepl,terms)

这是有效的,但没有给出正确的答案(每个词返回为假(没有出现在任何文本)。

代码语言:javascript
复制
sapply(text,grepl,sapply(terms,'['))

这也不起作用,并返回错误的答案(都是假的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-03 16:59:49

你们关系很好。当您使用sapply时,pattern=必须长度为1,因此您应该在sapply中添加x=text

代码语言:javascript
复制
out <- sapply(terms, grepl, x = text)
out
#       this  that those
# [1,]  TRUE FALSE FALSE
# [2,] FALSE FALSE  TRUE
# [3,] FALSE  TRUE FALSE
# [4,]  TRUE FALSE FALSE

如果需要知道是否匹配,可以使用rowSumscolSums

代码语言:javascript
复制
colSums(out) > 0
#  this  that those 
#  TRUE  TRUE  TRUE 
setNames(rowSums(out) > 0, nm = text)
#                  this is some text here is more text with those words      more text than that other one 
#                               TRUE                               TRUE                               TRUE 
#                       this ends it 
#                               TRUE 

( setNames纯粹是为了确定哪个逻辑是哪个text的,以防这是您想要的方向。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70975282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档