R数据对象处理函数(三)-精确、部分和完全匹配

1.%in%

which(x %in% y)  #找出x在y中存在元素的索引
1.精确匹配:items %in% c('A','B')表示items中,item='A' or item='B'
2.%pin%是部分匹配,只要item like '%A%' or item like '%B%'
3.%ain%是完全匹配,itemset has ’A' and itemset has ’B'
注:2,3是基于arules包

2.match函数族

match函数族在匹配字符时返回匹配或部分匹配的元素下标,匹配参数不支持正则

match(x,table,nomatch=NA_integer_,incomparables=NULL)	#要求完全匹配
#nomatch参数指定不匹配时的返回值(integer类型),incomparables指定不能用来匹配的值,故即使x在table得到匹配也会由nomatch代替
match("mn",c("mn", "mn", "xy"), nomatch = NA) #只返回第一个元素下标
match("xy",c("ab", "mn", "xy"), nomatch = NA,incomparables = c("mn", "xy")) #NA


pmatch(x,table,nomatch=NA_integer_,duplicates.ok=FLASE)	#duplicates.ok表示table中的元素是否可适用多次(依次从x中挑出元素,对照table进行匹配,匹配上则从table中剔除匹配上的值,不参与下次匹配).部分匹配(从table元素的开始位置进行匹配,若x出现在table元素的中间位置,则不予匹配)
pmatch("me",c("mean", "me","mode"))	#2,忽略部分匹配
pmatch("me",c("mean", "mae","mode"))	#1,唯一部分匹配
pmatch("m",c("mean", "median", "mode"))	#部分匹配多个值,返回NA
pmatch(c("","ab","ab"), c("abc","ab"), dup = FALSE)	#NA,2,1

猜你喜欢

转载自blog.csdn.net/qq_38984677/article/details/81542956