當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。