我有一个关键字(例如“绿色”)和一些文字(“我不喜欢他们,我是山姆!”)。
我想看看关键字('g','r','e','e','n')中有多少个字符出现在文本中(以任何顺序)。
在这个例子中,答案是 3 - 文本没有 G 或 R,但有两个 E 和一个 N。
我的问题是,如果文本中的字符与关键字中的字符匹配,则它不能用于匹配关键字中的不同字符。
例如,如果我的关键字是'green',那么“匹配字符”的数量仍然是 3(一个 N 和两个 E),因为文本中只有两个 E,而不是 3(匹配关键字中的第三个 E) .
我怎么能用 R 写这个?这只是在我记忆的边缘打勾-我觉得这是一个常见问题,但措辞不同(有点像没有替换的采样,但是“匹配没有替换”?)。
例如
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',3(G,E,E)
- “红色”、“idonotlikethemsamiam”、2(E 和 D)