大家好,我是小伍,今天是23日,學(xué)生一般都返校了,很多學(xué)校都忙碌起來了。
今天給大家分享一個小技巧,快速區(qū)分腫瘤樣本和正常組織。我們知道 ,腫瘤組織的樣本一般都是有-01標(biāo)志,而正常組織的樣本有-11等標(biāo)志。這時,我就想到了grep函數(shù)。
R語言的包里其表達式為:
??grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,fixed = FALSE, useBytes = FALSE, invert = FALSE)
??grepl(pattern, x, ignore.case = FALSE, perl = FALSE,fixed = FALSE, useBytes = FALSE)
??可以理解為搜索字符向量中匹配參數(shù)pattern的模型,fixed的邏輯值決定將pattern視為正則表達式或一個文本字符串,若fixed=TURE,則視pattern為文本字符串(精確匹配);fixed=FALSE,則視之為正則表達式,正則表達式則相當(dāng)于一種條件,函數(shù)返回匹配值的下標(biāo);perl=TURE,使用perl風(fēng)格的正則表達式;value則決定返回的類型是匹配值的下標(biāo)還是匹配的值。
### grep和grepl的區(qū)別在于grep返回的是匹配正確的字符串在 x 向量中的元素下標(biāo)。而grepl返回的則是邏輯變量TRUE和FALSE。### 如果我們想要返回匹配正確字符的值要怎么辦呢?我們可以通過設(shè)置grep中的value=T來達到目的。
有了以上基礎(chǔ),下面的事就好辦了。
代碼如下:
r1<-colnames(data)
r2<-grep(pattern = '-01',x = r1,value = T)
data<-data[,r2]
是不是感覺很簡單方便,三行代碼就搞定所有,拿去不謝。
如果您覺得有價值,請把此文放到您朋友圈,大家都會感謝你