R package: dplyr 無痛分析dataframe

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

select. 挑選特定column出來 · filter. 自訂條件濾掉column中的資料 · arrange. 調整row排列順序 · mutate. 以現有的column資料做運算,形成新的column. 直接觀看文章 2016年01月08日2017年06月09日 在R裡面處理數據前處理時,dplyr是非常強大的一個封包,其主要設計的理念有三個: 整合所有在前處理數據會常用的“邏輯”,變成簡單易懂的函數,比如:過濾特定行、針對特定行資料作出彙整等等。

底層使用c++撰寫,讓其處理時速度較快 其在“輸入”的檔案支持性良好,支持多種資料庫的串接 dplyr是由HadleyWickham開發的,承接plyr的邏輯。

語法上加入pipeline的概念,可以寫得非常精簡。

dplyrpackage最重要的5個函數,其實就代表在資料前處理的普遍操作 select 挑選特定column出來 filter 自訂條件濾掉column中的資料 arrange 調整row排列順序 mutate 以現有的column資料做運算,形成新的column summarise 將目前的資料做統計運算,形成統計結論 當然新版本的dplyr其實會把輸入的檔案,轉換成tbl/tibble的格式,在資料呈現和內建的處理邏輯會有些不同,可能要小心,這邊寫其中一個用原生data.frame處理邏輯轉入到使用dplyr可能會遇到的。

隨者使用tidyverse的包越來越多,會發現HadleyWickham有一套很棒的計畫在逐漸把R原生的"較不直覺的"語法改進。

以下分別示範在dplyr中這幾個用法: 使用常用的mtcars資料集做示範: select data("mtcars") mtcars%>%str() 這筆資料由MotorTrendUS雜誌所提供,總共有32部介於1973-74年出產的汽車其性能的資訊。

Select:挑選特定欄位進行分析,其利害的地方其實是這個函數的子函數: starts_with()挑選欄位名稱開頭有""字串的欄位 ends_with()  挑選欄位名稱結尾有""字串的欄位 contains()      挑選欄位名稱中包含""字串的欄位 matches()      挑選欄位名稱符合""字串的欄位 select(mtcars,starts_with("m")) select(mtcars, ends_with("b")) select(mtcars,contains("ra")) select(mtcars,matches("a")) select(mtcars,disp,am) Filter:根據特定條件篩選資料 filter的使用就蠻直覺的,可以直接在後面接logical條件,且可以直接使用欄位名稱 filter(mtcars,cyl==8) filter(mtcars,cyl<6) #Multiplecriteria filter(mtcars,cyl<6&vs==1) filter(mtcars,cyl<6|vs==1) #Multipleargumentsareequivalenttoand filter(mtcars,cyl<6,vs==1) 這邊整理filter可以使用的一些“logic”表示法 Logicsymbol == 等於 != 不等於 > 大於 < 小於 %in% 包含於 is.na() 是否為NA值 Arrange:將資料根據特定欄位來排序 預設是將數值由小到大排下去,假如有NA值的話,直接排最後,使用desc則變成由大到小,其本身支持multiplearrange arrange(mtcars,cyl,disp) arrange(mtcars,desc(disp)) Mutate:由已有的行經過“處理(加減乘除等等)”,產生新的行 mutate(mtcars,displ_l=disp/61.0237) Summarise:總結行資料,形成單一值 summarise的函數,可能是需要多點練習,才會比較熟稔他的邏輯,其就是將資料進行sum,mean,median等等,原本r語言中,用來進階統計內建函數可以上場的時候。

summarise(mtcars,mean(disp)) summarise(group_by(mtcars,cyl),mean(disp)) summarise(group_by(mtcars,cyl),m=mean(disp),sd=sd(disp)) 其實除了這五個基本函數外,dplyr封包中有很多進階的功能,可以進一步來活用! 這邊有Rstudio精心整理的cheatsheet,可以用來幫助學習 分享此文:TwitterFacebook請按讚:喜歡正在載入... 文章分頁導航 ENCODEProject基因字典-幫人類基因序列寫註解GeneDock聚道科技 發表迴響取消回覆 在此輸入你的回應… 在下方填入你的資料或按右方圖示以社群網站登入: 電子郵件(必須填寫)(電子郵件地址不會公開) 名稱(必須填寫) 個人網站 您的留言將使用WordPress.com帳號。

( 登出 /  變更 ) 您的留言將使用Twitter帳號。

( 登出 /  變更 ) 您的留言將使用Facebook帳號。

( 登出 /  變更 ) 取消 連結到%s 透過電子郵件通知我後續回應。

有新文章時用Email通知我。

Δ 搜尋: 近期文章 開源計算生物學工具列表 GinkgoBiowork–物種公司:想像未來生物化之產業體系 LondonCalling2022:第三代定序Oxfordnanopore年度盛會 重灌更新Pop!_OS:miniconda,R,Rstudio 自造系列-實驗室中的3D列印機:不僅僅是玩具 近期迴響 SofiaLambert在RNAseq:AnnotationBasedQuali…再訪Bioawk:定序序列分析…在awk裡好用的變數:FS,OFS,RS,ORS,NR…再訪Bioawk:定序序列分析…在awk進階筆記:字串處理再訪Bioawk:定序序列分析…在Bioawk:專門處理定序相關格式的awk(fasta,fa…使用區跨鏈打造去中心化科研DeSci…在社群、區塊鏈、NFT和新型態生技開源模式 文章存檔 2022年八月 (1) 2022年六月 (2) 2022年五月 (7) 2022年四月 (1) 2022年三月 (2) 2022年二月 (1) 2021年十二月 (1) 2021年八月 (2) 2021年七月 (1) 2021年六月 (1) 2021年二月 (1) 2020年十一月 (2) 2020年六月 (2) 2020年三月 (1) 2019年十月 (1) 2019年九月 (1) 2019年八月 (1) 2019年五月 (2) 2019年四月 (6) 2019年三月 (2) 2019年二月 (1) 2019年一月 (1) 2018年十二月 (1) 2018年十一月 (2) 2018年十月 (1) 2018年九月 (2) 2018年八月 (1) 2018年七月 (8) 2018年六月 (1) 2018年五月 (7) 2018年四月 (9) 2018年三月 (5) 2018年二月 (6) 2018年一月 (8) 2017年十二月 (2) 2017年十一月 (2) 2017年十月 (6) 2017年九月 (2) 2017年八月 (9) 2017年七月 (2) 2017年六月 (4) 2017年五月 (16) 2017年四月 (20) 2017年三月 (13) 2017年二月 (7) 2017年一月 (14) 2016年十二月 (10) 2016年十一月 (21) 2016年十月 (17) 2016年八月 (4) 2016年六月 (9) 2016年五月 (2) 2016年四月 (3) 2016年三月 (3) 2016年二月 (13) 2016年一月 (27) 2015年十二月 (1) 2015年十一月 (2) 2015年十月 (8) 分類 bioinformatics(5) Biostatistics(1) book(1) cancer(3) Code(3) docker(1) EnsemblAPI(2) GeneOntology(4) genedock實習準備(1) ggplot2(1) LDT(1) MedicalInformation(3) python(1) R(7) reddit(1) RNAseq(9) samtools(1) Softward(2) 未分類(302) 其它 註冊 登入 訂閱網站內容的資訊提供 訂閱留言的資訊提供 WordPress.com 我們的基因體時代Our"Gene"ration learningtogetherwithgreatscientist,codingandbioinformatics 搜尋: 近期文章 開源計算生物學工具列表 GinkgoBiowork–物種公司:想像未來生物化之產業體系 LondonCalling2022:第三代定序Oxfordnanopore年度盛會 重灌更新Pop!_OS:miniconda,R,Rstudio 自造系列-實驗室中的3D列印機:不僅僅是玩具 近期迴響 SofiaLambert在RNAseq:AnnotationBasedQuali…再訪Bioawk:定序序列分析…在awk裡好用的變數:FS,OFS,RS,ORS,NR…再訪Bioawk:定序序列分析…在awk進階筆記:字串處理再訪Bioawk:定序序列分析…在Bioawk:專門處理定序相關格式的awk(fasta,fa…使用區跨鏈打造去中心化科研DeSci…在社群、區塊鏈、NFT和新型態生技開源模式 文章存檔 2022年八月 2022年六月 2022年五月 2022年四月 2022年三月 2022年二月 2021年十二月 2021年八月 2021年七月 2021年六月 2021年二月 2020年十一月 2020年六月 2020年三月 2019年十月 2019年九月 2019年八月 2019年五月 2019年四月 2019年三月 2019年二月 2019年一月 2018年十二月 2018年十一月 2018年十月 2018年九月 2018年八月 2018年七月 2018年六月 2018年五月 2018年四月 2018年三月 2018年二月 2018年一月 2017年十二月 2017年十一月 2017年十月 2017年九月 2017年八月 2017年七月 2017年六月 2017年五月 2017年四月 2017年三月 2017年二月 2017年一月 2016年十二月 2016年十一月 2016年十月 2016年八月 2016年六月 2016年五月 2016年四月 2016年三月 2016年二月 2016年一月 2015年十二月 2015年十一月 2015年十月 分類 bioinformatics Biostatistics book cancer Code docker EnsemblAPI GeneOntology genedock實習準備 ggplot2 LDT MedicalInformation python R reddit RNAseq samtools Softward 未分類 其它 註冊 登入 訂閱網站內容的資訊提供 訂閱留言的資訊提供 WordPress.com 分類 bioinformatics Biostatistics book cancer Code docker EnsemblAPI GeneOntology genedock實習準備 ggplot2 LDT MedicalInformation python R reddit RNAseq samtools Softward 未分類 追蹤 已追蹤 我們的基因體時代Our"Gene"ration 加入其他58位關注者 我要註冊 已經有WordPress.com帳號了?立即登入。

我們的基因體時代Our"Gene"ration 自訂 追蹤 已追蹤 註冊 登入 複製短網址 回報此內容 以閱讀器檢視 管理訂閱 收合此列   載入迴響中...   發表迴響… 電子郵件(必要) 名稱(必要) 網站 %d位部落客按了讚:



請為這篇文章評分?