我有一个关键字(例如“绿色”)和一些文本(“我不喜欢他们山姆我是!”)。R - 计数一个字符串和另一个字符之间的匹配项,无替换
我想看看关键字('g','r','e','e','n')中有多少个字符出现在文本中(以任何顺序)。
在这个例子中,答案是3 - 文本不具有A G或R,但具有两个居和N.
我的问题出现了,其中,如果在文本中的字符与字符匹配在关键字中,则不能用来匹配关键字中的不同字符。
例如,如果我的关键字是'greeen',则“匹配字符”的数目仍然是3(一个N和两个Es),因为文本中只有两个Es,而不是3(与第三个E在关键字中)。
如何在R中编写此代码?这只是在我记忆力的边缘点出了一些东西 - 我觉得这是一个普遍的问题,但措辞不同(有点像取样没有替代品,但是“没有替代品相匹配”)。
E.g.
- '绿色', 'idonotlikethemsamiam',3(G,E,E)
- “greeen:预期的输入/输出(关键词,文本,预期输出)
keyword <- strsplit('greeen', '')[[1]] text <- strsplit('idonotlikethemsamiam', '')[[1]] # how many characters in keyword have matches in text, # with no replacement? # Attempt 1: sum(keyword %in% text) # PROBLEM: returns 4 (all three Es match, but only two in text)
更多实例”, 'idonotlikethemsamiam',3(G,E,E)
- '红', 'idonotlikethemsamiam',2(E和d)
+1:我今天肯定学到了东西! – Simon 2013-02-18 02:30:48
+1,确实非常光滑 – 2013-02-18 02:44:06
啊哈!我花了很多时间尝试'match'和'charmatch',并没有注意到'pmatch'不允许重复(正是我想要的)。非常感谢! – 2013-02-18 02:56:30