我需要输出一个逻辑,指示哪些字符串匹配,哪些不匹配。
words<-c("happy","sad")
all_words<-c("happy","tragic","sad","angry","mad","laugh","happy")
注意:有重复!
通过使用stringr
程序包,我几乎可以达到我想要的结果,但不完全是这样。
> str_detect(all_words,fixed(words))
TRUE FALSE FALSE FALSE FALSE FALSE TRUE
几乎是正确的,除了第三个索引应显示为TRUE
,因为all_words
向量中出现了悲伤的词。
输出应如下所示:
TRUE FALSE TRUE FALSE FALSE FALSE TRUE
答案 0 :(得分:2)
您只需要:
all_words %in% words
来自help("%in%")
:
%in%是一个更直观的二进制运算符界面,它返回 一个逻辑向量,指示左边是否有匹配项 操作数。
基本上,对于第一个向量中的每个元素,它都会检查左手向量中是否存在匹配项。
答案 1 :(得分:1)
words<-c("happy","sad")
all_words<-c("happy","tragic","sad","angry","mad","laugh","happy")
您需要的是:
all_words %in% words
[1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE