R语⾔的匹配函数-pmatch
pmatch
该函数的⼀个⽤途是:在设置函数参数时,限制输⼊的参数范围。
pmatch(x, table, nomatch =NA_integer_, duplicates.ok =FALSE)
# 返回⾸次匹配元素在table中的位置
x:标量或向量,必须为 character类型
table:向量,必须为 character 类型
nomatch:未匹配时返回值,必须设定为 int 类型
duplicates.ok:在匹配过程中,当存在多匹配时,会返回⾸次匹配的位置,并从记录中删除,再次匹配时将忽略该位置(FALSE);为TRUE时,不忽略该位置,会重复匹配
pmatch("","")# returns NA
pmatch("m",  c("mean","median","mode"))# returns NA
pmatch("med", c("mean","median","mode"))# returns 2
pmatch(c("","ab","ab"), c("cbc","ab","abd"), dup =FALSE)
# return NA, 2, 3
pmatch(c("","ab","ab"), c("abc","ab"), dup =TRUE)
# return NA, 2, 2
注意
该函数主要包括:精确匹配和模糊匹配
false是什么函数如果精确匹配时,考虑第⼀次精确匹配,并且记录第⼀次精确匹配的位置。
如果没有精确匹配,则考虑模糊匹配,并且记录第⼀次模糊匹配的位置(以开头匹配的为⾸要记录的)。
如果x的整个元素与表中元素的开头都匹配(或者都不在开头的模糊匹配),则返回NA。
> pmatch("ab", c("cabc","dab","abd"), dup =FALSE)
[1]3
> pmatch("ab", c("abc","abd","abe"), dup =FALSE)
[1]NA
> pmatch("ab", c("dabc","cabs"), dup =FALSE)
[1]NA
> pmatch("ab", c("ab","ab","ab"), dup =FALSE)
[1]1
此外,空字符串什么也不能匹配,甚⾄不能与空字符串完全匹配。
如果duplicates.ok为FALSE,则⼀旦匹配,表的值将从后续匹配的搜索中排除。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。