Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-一个字符串和另一个字符串的字符之间的计数匹配,不替换_R - Fatal编程技术网

R-一个字符串和另一个字符串的字符之间的计数匹配,不替换

R-一个字符串和另一个字符串的字符之间的计数匹配,不替换,r,R,我有一个关键词(例如“绿色”)和一些文字(“我不喜欢他们,山姆,我是!”) 我想看看关键字('g','r','e','e','n')中有多少字符出现在文本中(以任何顺序)。 在本例中,答案是3-文本没有G或R,但有两个E和一个N 我的问题是,如果文本中的一个字符与关键字中的一个字符匹配,那么它就不能用于匹配关键字中的另一个字符 例如,如果我的关键字是“green”,那么“匹配字符”的数量仍然是3(一个N和两个E),因为文本中只有两个E,而不是3(匹配关键字中的第三个E) 我怎么能用R写这个?这只

我有一个关键词(例如“绿色”)和一些文字(“我不喜欢他们,山姆,我是!”)

我想看看关键字('g','r','e','e','n')中有多少字符出现在文本中(以任何顺序)。

在本例中,答案是3-文本没有G或R,但有两个E和一个N

我的问题是,如果文本中的一个字符与关键字中的一个字符匹配,那么它就不能用于匹配关键字中的另一个字符

例如,如果我的关键字是“green”,那么“匹配字符”的数量仍然是3(一个N和两个E),因为文本中只有两个E,而不是3(匹配关键字中的第三个E)

我怎么能用R写这个?这只是在我记忆的边缘打勾——我觉得这是一个常见的问题,但措辞不同(有点像采样时没有替换,但“匹配时没有替换”?)

例如


关键字也许您正在寻找关键字的独特组成部分?尝试:

keyword <- unique(strsplit('greeen','')[[1]])
keyword函数pmatch()非常适合这一点。虽然在这里使用length是本能的,但length没有na.rm选项。因此,为了解决这个麻烦,使用sum(!is.na())

keyword <- unlist(strsplit('greeen', ''))
text <- unlist(strsplit('idonotlikethemsamiam', ''))

sum(!is.na(pmatch(keyword, text)))

# [1] 3

keyword2 <- unlist(strsplit("red", ''))
sum(!is.na(pmatch(keyword2, text)))

# [1] 2

关键字不,我不是。我试图找到出现在文本中的关键字中的字符数,如果文本中的一个字符与关键字中的一个匹配,则不能使用它来匹配关键字中的另一个字符。我想要的输出是数字,而不是字符向量。啊哈!我花了很长时间尝试
match
charmatch
,但没有注意到
pmatch
不允许重复(这正是我想要的)。非常感谢@Mathematic.coffee pmatch确实允许重复,但它的默认值为false。是的,对不起,我的意思是“没有注意到
pmatch
有不允许重复的选项”
取消列出
可以避免字符串向量而不是子集
[[1]
@BrandonBertelsen谢谢,我只是用问题中的例子来获取我的数据。现在编辑。
keyword <- unlist(strsplit('greeen', ''))
text <- unlist(strsplit('idonotlikethemsamiam', ''))

sum(!is.na(pmatch(keyword, text)))

# [1] 3

keyword2 <- unlist(strsplit("red", ''))
sum(!is.na(pmatch(keyword2, text)))

# [1] 2