当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R pmatch 部分字符串匹配


R语言 pmatch 位于 base 包(package)。

说明

pmatch 在第二个参数中寻找第一个参数的元素的匹配项。

用法

pmatch(x, table, nomatch = NA_integer_, duplicates.ok = FALSE)

参数

x

要匹配的值:通过 as.character 转换为字符向量。支持Long vectors

table

要匹配的值:转换为字符向量。不支持Long vectors

nomatch

在不匹配或部分匹配位置返回的值。请注意,它被强制为 integer

duplicates.ok

table 中的元素是否应该多次使用?

细节

行为因 duplicates.ok 的值而异。首先考虑一下这种情况是否属实。考虑第一个精确匹配,并记录第一个精确匹配的位置。然后考虑唯一的部分匹配,如果发现则记录下来。 (如果 x 的整个元素与 table 的元素的开头匹配,则发生部分匹配。)最后,x 的所有剩余元素都被视为不匹配。此外,空字符串不能匹配任何内容,甚至不能与空字符串完全匹配。例如,这是字符索引部分匹配的适当行为。

如果duplicates.okFALSE,值table一旦匹配就会被排除在后续匹配的搜索之外。此行为相当于R参数匹配的算法,除了考虑空字符串(在参数匹配中,空字符串在与任何剩余参数的精确和部分匹配之后进行匹配)。

charmatchpmatch 类似,duplicates.ok 为 true,不同之处在于它区分不匹配和不明确的部分匹配,它确实匹配空字符串,并且不允许多个精确匹配。

NA 值被视为字符串常量 "NA"

x 长度相同的整数向量(如果 nomatch = NA 则可能包括 NA ),给出 table 中匹配的元素的索引,或 nomatch

例子

pmatch("", "")                             # returns NA
pmatch("m",   c("mean", "median", "mode")) # returns NA
pmatch("med", c("mean", "median", "mode")) # returns 2

pmatch(c("", "ab", "ab"), c("abc", "ab"), duplicates.ok = FALSE)
pmatch(c("", "ab", "ab"), c("abc", "ab"), duplicates.ok = TRUE)
## compare
charmatch(c("", "ab", "ab"), c("abc", "ab"))

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.

也可以看看

matchcharmatchmatch.argmatch.funmatch.call ,用于函数参数匹配等,startsWith 用于初始匹配的特定检查; grep 等用于更一般的(正则表达式)字符串匹配。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Partial String Matching。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。