一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - R語(yǔ)言 - R語(yǔ)言:數(shù)據(jù)篩選match的使用詳解

R語(yǔ)言:數(shù)據(jù)篩選match的使用詳解

2022-01-12 14:39劉永鑫Adam R語(yǔ)言

這篇文章主要介紹了R語(yǔ)言:數(shù)據(jù)篩選match的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

數(shù)據(jù)篩選是在分析中最常用的步驟,如微生物組分析中,你的OTU表、實(shí)驗(yàn)設(shè)計(jì)、物種注釋之間都要不斷篩選,來(lái)進(jìn)行數(shù)據(jù)對(duì)齊,或局部分析。

今天來(lái)詳解一下此函數(shù)的用法。

match

match:匹配兩個(gè)向量,返回x中存在的返回索引或TRUE、FALSE

match函數(shù)使用格式有如下兩種:

第一種方便設(shè)置參數(shù),返回x中元素在table中的位置

?
1
match(x, table, nomatch = NA_integer_, incomparables = NULL)

第二種簡(jiǎn)潔,返回x中每個(gè)元素在table中是否存在

?
1
x %in% table

參數(shù)詳解

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 沒(méi)匹配上的返回值, 必須是整數(shù);

incomparables: 指定不能用來(lái)匹配的值.

match函數(shù)是一個(gè)完全匹配函數(shù), 當(dāng)兩個(gè)元素類型不一樣時(shí), 如果進(jìn)行類型轉(zhuǎn)換后匹配得上的話, 則仍可匹配, 可看下例.

匹配上且返回位置

?
1
match(c(1, "TRUE"), c(T, 0, "1"))

返回3 1,即1位于表中的3號(hào)位,TRUE位于1號(hào)位,且T和TRUE可匹配成功

?
1
c(1, "TRUE", F) %in% c(T, 0, "1")

返回TRUE TRUE FALSE,表示每個(gè)元素在table中是否存在

pmatch

pmatch函數(shù)是一個(gè)部分匹配函數(shù), 依次從x里面挑出元素, 對(duì)照table進(jìn)行匹配, 若匹配上則剔除匹配上的值, 不再參與下次匹配, duplicate.ok可設(shè)置是否剔除; 對(duì)于某一個(gè)元素,

匹配一共分成三步:

1、如果可以完全匹配, 則認(rèn)為匹配上了, 返回table中的位置;

2、不滿足上述條件, 如果是唯一部分匹配, 則返回table中的位置;

3、不滿足上述條件, 則認(rèn)為沒(méi)有值與其匹配上.

pmatch函數(shù)的格式

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

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 沒(méi)匹配上的返回值, 必須是整數(shù);

duplicates.ok: table里面的元素是否可以適用多次.

默認(rèn)不允許重復(fù)使用table中元素,返回位置1 2 3

?
1
pmatch(rep(1, 3), rep(1, 5))

允許重復(fù),返回位置1 1 1

?
1
pmatch(rep(1, 3), rep(1, 5), duplicates.ok = TRUE)

補(bǔ)充:R語(yǔ)言實(shí)例-數(shù)據(jù)過(guò)濾

1、問(wèn)題

一組數(shù)據(jù),變量有40個(gè),就是40列。

我要做數(shù)據(jù)篩選。

1.第一列中包含語(yǔ)段"a11","a12","b23"。請(qǐng)注意是包含,實(shí)際不存在“a11”,往往是“a1120”之類的信息

2.第二列中不包含“美國(guó)”、“日本”等信息。請(qǐng)注意,也是不包含,而不是不等于。

請(qǐng)問(wèn)具體的R語(yǔ)言語(yǔ)句應(yīng)該怎么寫?

2、解決

假設(shè)樓主的數(shù)據(jù)為一數(shù)據(jù)框,名字為“testdat”,第一列名"a",第二列名"b",則過(guò)濾語(yǔ)句為:

?
1
result<-subset(testdat,grepl("a11|a12|b23",testdat$a) & !grepl("美國(guó)|日本",testdat$b))

3、注意

grep()函數(shù)返回的是匹配元素的索引,grepl()返回的是匹配或不匹配的邏輯值:

?
1
2
grep(value = FALSE) returns a vector of the indices of the elements of x that yielded a match (or not, for invert = TRUE. This will be an integer vector unless the input is a long vector
grepl returns a logical vector (match or not for each element of x).

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://metagenome.blog.csdn.net/article/details/84927296

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好大好硬好深好爽想要小雪 | 日本视频一区在线观看免费 | 国产午夜精品久久久久小说 | 四虎最新紧急更新地址 | 免费看全黄特黄毛片 | 久久综合给合久久狠狠狠… | 日本www视频在线观看 | 久久视频这里只精品99热在线观看 | 我和岳偷长篇小说 | 精品一区二区视频 | juy_661佐佐木明希在线播放 | 91中文在线 | 欧美视频一区二区三区在线观看 | 亚洲高清视频网站 | 大陆黄色片| 日本黄a三级三级三级 | 车上小婕子系列辣文小说 | 91精品91 | 韩国一大片a毛片女同 | 国产大片51精品免费观看 | 草草视频在线观看最新 | 国产成人精品777 | 日本人添下面的全过程 | 無码一区中文字幕少妇熟女网站 | 亚洲2017天堂色无码 | 日韩在线天堂 | 亚洲国产精品一区二区久久 | 男人桶女下面60分钟视频 | 精品久久成人免费第三区 | 暖暖高清日本在线 | 香蕉大久久 | 性关系视频免费网站在线观看 | 9191精品国产观看 | 亚洲精品丝袜在线一区波多野结衣 | 亚洲视频免费在线观看 | 国产综合亚洲欧美日韩一区二区 | 精品亚洲欧美中文字幕在线看 | 亚洲精品一区二区久久这里 | 超91在线 | 91嫩草国产在线观看免费 | 99青青青精品视频在线 |