R語(yǔ)言中管道符號(hào)%>%的使用
爾云間? 一個(gè)專門做科研的團(tuán)隊(duì)
關(guān)注我們
? ? ?
今天小果給大家?guī)淼氖枪艿婪?>%。盡管在編寫代碼的時(shí)候我們可以使用自動(dòng)補(bǔ)全功能大大減少工作量,但編程的過程依舊繁瑣,使用管道符可以在某些時(shí)候減少代碼量,更方便觀察。%>%有一個(gè)快捷輸入方法,即control,shift加m鍵,下面我們來演示管道符的操作方法。
第一步
首先加載包:library(magrittr),用到了數(shù)據(jù)集mtcars。

?
管道符的意思就是把符號(hào)前面的輸出作為符號(hào)后面的輸入。在沒有管道符的情況下,若是使用subset函數(shù)將數(shù)據(jù)集mtcars中hp>100的部分提取出來,應(yīng)當(dāng)寫為下方樣式:
第二步
處理過程應(yīng)當(dāng)寫為如下樣式:
我們可以仔細(xì)分辨一下兩者之間的不同之處,但從代碼長(zhǎng)度上來看,運(yùn)用%>%管道符雖然可以少量縮減代碼但并沒有太大的優(yōu)勢(shì)。但從可讀性來看,管道符的應(yīng)用避免了一個(gè)函數(shù)套一個(gè)函數(shù),指向性很強(qiáng)。
如果我們不另外設(shè)置變量newdata,那么只能寫成這個(gè)樣子,到這一步括號(hào)就已經(jīng)變得比較多了,但還勉強(qiáng)可以看。這里有一個(gè)地方要注意,符號(hào) . 在有管道符的情況下會(huì)被用以代替從管道符前面接收到的變量,但優(yōu)先級(jí)并不高。程序?qū)?yōu)先執(zhí)行 . 符號(hào)本身的含義。也就是說,在代碼aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2))中除去. ~ cyl之外的符號(hào) . 才被用于代表管道符前面接收到的變量。
第三步
在建立新變量的情況下,可以寫為:
若不建立新變量,又不使用管道符,他將完全喪失可讀性。
使用管道符,既可以減少設(shè)置多余的變量,又能簡(jiǎn)化代碼增強(qiáng)可讀性,實(shí)在是一項(xiàng)不得不掌握的編程利器。今天小果的分享就到這,祝大家生活愉快。
推薦閱讀
關(guān)注小果,小果將會(huì)持續(xù)為你帶來更多生信干貨哦。

“生信果”,生信入門、R語(yǔ)言、生信圖解讀與繪制、軟件操作、代碼復(fù)現(xiàn)、生信硬核知識(shí)技能、服務(wù)器、生物信息學(xué)的教程,以及基于R的分析和可視化等原創(chuàng)內(nèi)容,一起見證小白和大佬的成長(zhǎng)。?