【R語言】dplyr對數據分組取各組前幾行 - 人人焦點

文章推薦指數: 80 %
投票人數:10人

【R語言】dplyr對數據分組取各組前幾行 ... 下面這張表就是GO富集分析得到的結果,我們可以根據ONTOLOGY這一列來分組,就可以得到BP,CC和MF三個組。

人人焦點 影視 健康 歷史 數碼 遊戲 美食 時尚 旅遊 運動 星座 情感 動漫 科學 寵物 家居 文化 教育 故事 【R語言】dplyr對數據分組取各組前幾行 2022-01-31生信交流平台 前面我們介紹過GO富集分析和結果可視化1.GO和KEGG富集分析視頻講解2.GO富集分析四種風格展示結果—柱形圖,氣泡圖3.GO和KEGG富集結果如何顯示基因symbol4.GO和KEGG富集倍數(FoldEnrichment)如何計算我們知道GO又可以進一步劃分成BP,MF和CCBP:biologicalprocess,生物學過程。

MF:molecularfunction,分子功能。

CC:cellularcomponent,細胞成分。

  所以在畫圖的時候,也需要區分這三類。

下面這張表就是GO富集分析得到的結果,我們可以根據ONTOLOGY這一列來分組,就可以得到BP,CC和MF三個組。

然後取每一個組的前10個條目或者前5個條目來繪製柱形圖或者氣泡圖。

那麼問題來了,如何分組取前幾行。

今天小編就跟大家分享一個專業處理數據框的函數dplyr。

然後基於這個R包,我們用6種不同的方法來實現。

GO_result=read.csv("GO_all_enrich.csv")library(dplyr)我們先來看看直接head的效果GO_result%>%group_by(ONTOLOGY)%>%head(n=5)雖然,我們使用了group_by進行了分組,但是head並沒有應用到三個分組上面,而是直接應用到了整個數據框上,事與願違。

接下來我們來看正解方法一、通過do來執行r1=GO_result%>%group_by(ONTOLOGY)%>%do(head(.,n=5))r1可以看到15條結果,三類都有方法二、使用top_nr2=GO_result%>%group_by(ONTOLOGY)%>%top_n(n=-5,wt=p.adjust)r2這裡可以使用top_n這個函數來輸出每個組的前五行,wt是排序的依據,根據校正之後的p值來排序,n=-5是按從小到大排序。

如果n=5,是按從大到小排序。

方法三、使用slice_headr3=GO_result%>%group_by(ONTOLOGY)%>%slice_head(n=5)r3方法四、使用slice_minr4=GO_result%>%group_by(ONTOLOGY)%>%slice_min(order_by=p.adjust,n=5)r4slice_min會根據指定的p.adjust有小到大排序,然後取每組前5行方法五、使用group_modify結合headr5=GO_result%>%group_by(ONTOLOGY)%>%group_modify(~head(.x,5))r5方法六、使用filterr6=GO_result%>%group_by(ONTOLOGY)%>%filter(row_number()<=5)r6通過filter來控制行數<=5最後我們來看看這六種方法得到的結果究竟是不是一樣的,dplyr這個包裡面有函數叫all_equal專門用來判斷兩個數據框是不是一樣的>all_equal(r1,r2)[1]TRUE>all_equal(r1,r3)[1]TRUE>all_equal(r1,r4)[1]TRUE>all_equal(r1,r5)[1]TRUE>all_equal(r1,r6)[1]TRUE寫在最後雖然這幾種方法得到的結果是一致的,但是有一點需要注意。

GO富集分析的結果,默認是會根據校正之後的p值(p.adjust)來由小到大排序,所以基於這個結果,直接取每組的前五行就是最顯著的5個條目。

如果GO富集結果默認沒有按p.adjust排過序,那麼就需要選擇帶有排序的方法,如top_n和slice_min。

參考資料:1.GO和KEGG富集分析視頻講解2.GO富集分析四種風格展示結果—柱形圖,氣泡圖3.GO和KEGG富集結果如何顯示基因symbol4.GO和KEGG富集倍數(FoldEnrichment)如何計算關注「生信交流平台」公衆號,後台回復"GO結果表",獲取GO_all_enrich.csv爲了方便大家交流學習,共同進步,我特地創建了微信交流羣後台留言「生信交流羣」入羣 相關焦點 R語言|數據操作dplyr包 [更新~]Python網絡爬蟲與文本數據分析公衆號只帶著Python字眼,卻分享著R語言,不務正業,任性了~dplyr簡介dplyr是R語言的數據分析包,很像python中的pandas,能對dataframe R語言dplyr包學習筆記(吐血整理宇宙無敵詳細版)-CDA數據分析師 出處:AI入門學習dplyr包主要用於數據清洗和整理,主要功能有:行選擇、列選擇、統計匯總、窗口函數、數據框交集等是非常高效、友好的數據處理包,學清楚了,基本上數據能隨意玩弄,對的,隨意玩弄,簡直大大提高數據處理及分析效率。

我以爲,該包是數據分析必學包之一。

學習過程需要大量試驗,領悟其中設計的精妙之處。

R語言筆記-dplyr-2-表操作 表操作基礎多表操作列操作基本操作多種函數功能當前列行操作構造數據集行匯總統計分組操作添加分組刪除分組變量動詞 R語言基於dplyr實現數據快捷操作 R語言在處理大數據方面一直是被人詬病的地方,那麼有人就爲R語言打造了一個dplyr包可以實現高效的數據預處理,減少內存的消耗,提升處理效率 《R數據科學》讀書筆記——第3章使用dplyr進行數據轉換 flights,該數據集是tibble格式的數據框,更適合在tidyverse中使用,後續講述flights#就瞅一眼,看看幾行幾列?date-日期型變量3.1.3dplyr包的核心函數filter()按值篩選觀測,即按行篩選arrange()對行進行重新排序,即按照行篩選select()按照名稱選擇變量,即按照列篩選mutate()使用現有變量的函數創建新變量,即根據原有列生成新列 對照著Excel入門R語言表格數據處理 行」;select():按變量名稱篩選,針對表格的「列」;group_by():搭配上面的函數,實現強大的分組統計功能。

("C:/Users/MHY/Desktop/數據的分類匯總統計")dir()#讀入範例數據,爲了方便展示數據僅15行;dt>arrange(X.price)>>select(X.price)>>mutate(price_lead1=lead



請為這篇文章評分?