R -- match,pmatch,charmatch

文章目录

match

R 复制代码
?match
复制代码
Description
match returns a vector of the positions of (first) matches of its first argument in its second.
第一个向量中的元素在第二个向量中的位置,如果第二个向量中有多个仅返回第一个match 元素的位置,第二个向量中不存在则返回NULL

%in% is a more intuitive interface as a binary operator, which returns a logical vector indicating if there is a match or not for its left operand.

操作符 %in% 是match的简易变形版本,返回结果为TRUE,FALSE

Usage
match(x, table, nomatch = NA_integer_, incomparables = NULL)

x %in% table

Arguments
x	 vector or NULL: the values to be matched. Long vectors are supported.

table	vector or NULL: the values to be matched against. Long vectors are not supported.

nomatch	 the value to be returned in the case when no match is found. Note that it is coerced to integer.
如果没有match,应该返回什么值,默认是NULL

incomparables	 a vector of values that cannot be matched. Any value in x matching a value in this vector is assigned the nomatch value. For historical reasons, FALSE is equivalent to NULL.
类似于排除第一个向量中的某些元素,当第一个向量中的某些元素match 该参数指定的向量时,则返回NULL。

Examples
# 取两个向量的交集
intersect <- function(x, y) y[match(x, y, nomatch = 0)]
intersect(1:10, 7:20)

1:10 %in% c(1,3,5,9)
sstr <- c("c","ab","B","bba","c",NA,"@","bla","a","Ba","%")
sstr[sstr %in% c(letters, LETTERS)]

pmatch

R 复制代码
?pmatch
复制代码
Description
pmatch seeks matches for the elements of its first argument among those of its second.

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

Arguments
x	the values to be matched: converted to a character vector by as.character. Long vectors are supported.

table	the values to be matched against: converted to a character vector. Long vectors are not supported.

nomatch	the value to be returned at non-matching or multiply partially matching positions. Note that it is coerced to integer.

duplicates.ok	should elements be in table be used more than once?
这个参数控制该函数的行为,决定第二个向量中可以match几次,是遇到第一个match的就终止match还是寻找所有可以match的

Examples
pmatch("", "")                             # returns NA
pmatch("m",   c("mean", "median", "mode")) # returns NA    <--- 更具这一个示例,我觉得还是不要考虑使用这个函数了,通常我们会认为应该返回一个位置的,但返回了NA,容易给人造成误导。
pmatch("me",c("mean", "median", "mode"),duplicates.ok = TRUE) # returns NA
pmatch("med", c("mean", "median", "mode")) # returns 2

pmatch(c("", "ab", "ab"), c("abc", "ab"), dup = FALSE)
pmatch(c("", "ab", "ab"), c("abc", "ab"), dup = TRUE)
## compare
charmatch(c("", "ab", "ab"), c("abc", "ab"))

charmatch

R 复制代码
?charmatch
复制代码
Description
charmatch seeks matches for the elements of its first argument among those of its second.

Usage
charmatch(x, table, nomatch = NA_integer_)

Arguments
x	the values to be matched: converted to a character vector by as.character. Long vectors are supported.

table	the values to be matched against: converted to a character vector. Long vectors are not supported.

nomatch		the (integer) value to be returned at non-matching positions.

if multiple exact or multiple partial matches are found then 0 is returned and if no match is found then nomatch is returned.

复制代码
Examples
charmatch("", "")                             # returns 1
charmatch("m",   c("mean", "median", "mode")) # returns 0
charmatch("med", c("mean", "median", "mode")) # returns 2
相关推荐
asyxchenchong8886 天前
R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用
开发语言·r语言
临床数据科学和人工智能兴趣组8 天前
R语言中,列表是一种非常灵活的数据结构,它可以存储不同类型的对象,如向量、矩阵、数据框、甚至其他列表
数据结构·数据库·r语言·r语言-4.2.1·临床试验
临床数据科学和人工智能兴趣组9 天前
矩阵是一种二维数组,每个矩阵仅能包含一类数据(数值型、字符型或者逻辑型)
数据库·线性代数·矩阵·r语言·r语言-4.2.1·临床试验
临床数据科学和人工智能兴趣组10 天前
网络爬虫(Web Scraping)是一种用于自动提取网页内容的技术
r语言·r语言-4.2.1
生态学者11 天前
Ecological Indicators | 机场鸟调的新方法:用 AWM-PC1 读懂干扰梯度下的鸟类群落
人工智能·算法·r语言·微信公众平台
临床数据科学和人工智能兴趣组11 天前
运用rvest包进行数据爬虫
r语言·r语言-4.2.1
霸道流氓气质12 天前
基于本地 PaddleOCR 的 PDF 文字识别完整技术文档
开发语言·r语言·pdf
临床数据科学和人工智能兴趣组12 天前
SQL专为数据操作而设计,能够高效执行复杂的查询、筛选、排序、分组等操作
r语言·r语言-4.2.1
青春不败 177-3266-052013 天前
基于R、Python的Copula变量相关性分析及AI大模型应用
人工智能·python·r语言·贝叶斯·统计学·copula
统计学小王子14 天前
分类模型评价指标——R语言(数学建模常用)
数学建模·分类·r语言