批量處理——apply批量計算組間差異

Rstudio

相比于網(wǎng)頁工具,使用編程語言處理科研數(shù)據(jù)的一大優(yōu)勢,在于高度的定制化趣席,以及批量處理數(shù)據(jù)的快捷性和高效性

對于批量處理數(shù)據(jù)的方法,之前使用for循環(huán)和apply語句進行處理過醇蝴,但是不夠系統(tǒng)宣肚,學(xué)習(xí)果子生信課程后有一個清晰的認識,寫下來悠栓,一是可以調(diào)用方便霉涨,二是自己寫過之后弧呐,才能算是完全掌握。當然一切以解決問題為主嵌纲,不陷于技術(shù)深究。

之前使用apply家族函數(shù)腥沽,只用過apply逮走,也就是對數(shù)據(jù)框的處理。學(xué)習(xí)了果子課程后今阳,發(fā)現(xiàn)lapply函數(shù)和do.call函數(shù)連用师溅,真是神器。

一個簡單的目錄
批量處理——for循環(huán)批量計算組間差異

數(shù)據(jù)準備

rm(list = ls())

library(survminer)
data("myeloma")
head(myeloma)[1:3,1:11]

colnames(myeloma)

data = myeloma

還是使用R再帶數(shù)據(jù)集

構(gòu)建函數(shù)

先要了解lapply函數(shù)的使用方法
lapply(X, FUN, ...)這是其特點盾舌,前面是操作的內(nèi)容墓臭,后面是操作使用的函數(shù),函數(shù)使用后妖谴,返回列表窿锉,也就是list。所以要使用lapply函數(shù)膝舅,先要有操作函數(shù)嗡载,這個函數(shù)可以是R自帶,也可以是自己寫的

# 第1,寫出單次處理的function
my.kruskal= function(x){
  dd <- kruskal.test(data[,x] ~ molecular_group, data = data)
  data.frame(gene=x,p.value=dd$p.value)
}

測試函數(shù)

> my.kruskal("CCND1")
   gene      p.value
1 CCND1 2.888423e-30

lapply函數(shù)批量操作

lapplylist <- lapply(colnames(data)[6:11], my.kruskal)

結(jié)果是這個樣子

lapply操作后的結(jié)果

使用do.call轉(zhuǎn)換

前面得到的是列表仍稀,不便于后續(xù)的操作洼滚,要通過do.call 進行轉(zhuǎn)換

kruskal_data <- do.call(rbind, lapplylist)

結(jié)果就返回數(shù)據(jù)框,便于后續(xù)操作

整合成一步

# 整合成一個步驟
kruskal_data <- do.call(rbind, lapply(colnames(data)[6:11], function(x){
  dd <- kruskal.test(data[,x] ~ molecular_group, data = data)
  data.frame(gene=x,p.value=dd$p.value)
}))

根據(jù)p值進行篩選

kruskal_data_p <- kruskal_data %>% 
  filter( `p.value` < 0.01 ) %>% 
  arrange(desc(p.value))

整個操作的代碼

rm(list = ls())

library(survminer)
data("myeloma")
head(myeloma)[1:3,1:11]

colnames(myeloma)

data = myeloma

table(data$molecular_group)


# 第1,寫出單次處理的function
my.kruskal= function(x){
  dd <- kruskal.test(data[,x] ~ molecular_group, data = data)
  data.frame(gene=x,p.value=dd$p.value)
}
### 測試函數(shù)功能
my.kruskal("CCND1")

# 第2步lapply批量作用于函數(shù)技潘,返回list
lapplylist <- lapply(colnames(data)[6:11], my.kruskal)

# 第3步do.call 轉(zhuǎn)換list
kruskal_data <- do.call(rbind, lapplylist)

# 整合成一個步驟
kruskal_data <- do.call(rbind, lapply(colnames(data)[6:11], function(x){
  dd <- kruskal.test(data[,x] ~ molecular_group, data = data)
  data.frame(gene=x,p.value=dd$p.value)
}))


kruskal_data_p <- kruskal_data %>% 
  filter( `p.value` < 0.01 ) %>% 
  arrange(desc(p.value))

后記:有相關(guān)的統(tǒng)計量遥巴,進行篩選后,最好能夠根據(jù)篩選結(jié)果畫圖享幽,后續(xù)就使用批量的方法進行畫圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铲掐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琉闪,更是在濱河造成了極大的恐慌迹炼,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠毙,死亡現(xiàn)場離奇詭異斯入,居然都是意外死亡,警方通過查閱死者的電腦和手機蛀蜜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門刻两,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滴某,你說我怎么就攤上這事磅摹∽搪酰” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵户誓,是天一觀的道長饼灿。 經(jīng)常有香客問我,道長帝美,這世上最難降的妖魔是什么碍彭? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮悼潭,結(jié)果婚禮上庇忌,老公的妹妹穿的比我還像新娘。我一直安慰自己舰褪,他們只是感情好皆疹,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著占拍,像睡著了一般略就。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晃酒,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天残制,我揣著相機與錄音,去河邊找鬼掖疮。 笑死初茶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的浊闪。 我是一名探鬼主播恼布,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搁宾!你這毒婦竟也來了折汞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盖腿,失蹤者是張志新(化名)和其女友劉穎爽待,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翩腐,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡鸟款,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茂卦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片何什。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖等龙,靈堂內(nèi)的尸體忽然破棺而出处渣,到底是詐尸還是另有隱情伶贰,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布罐栈,位于F島的核電站黍衙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荠诬。R本人自食惡果不足惜们豌,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浅妆。 院中可真熱鬧,春花似錦障癌、人聲如沸凌外。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽康辑。三九已至,卻和暖如春轿亮,著一層夾襖步出監(jiān)牢的瞬間疮薇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工我注, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留按咒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓但骨,卻偏偏與公主長得像励七,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奔缠,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容