日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dataframe第二列 r语言_123.R简介和统计绘图

發(fā)布時間:2024/7/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe第二列 r语言_123.R简介和统计绘图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

123R簡介和統(tǒng)計繪圖

本節(jié)作者:劉永鑫 中國科學(xué)院遺傳與發(fā)育生物學(xué)研究所;陳同 中國中醫(yī)科學(xué)院

版本1.0.2,更新日期:2020年8月31日

本項目永久地址:https://github.com/YongxinLiu/MicrobiomeStatPlot ,本節(jié)目錄 123R,包含R markdown(*.Rmd)、Word(*.docx)文檔、測試數(shù)據(jù)和結(jié)果圖表,歡迎廣大同行幫忙審核校對、并提修改意見。提交反饋的三種方式:1. 公眾號文章下方留言;2. 下載Word文檔使用審閱模式修改和批注后,發(fā)送至微信(meta-genomics)或郵件(metagenome@126.com);3. 在Github中的Rmd文檔直接修改并提交Issue。審稿人請在創(chuàng)作者登記表 https://www.kdocs.cn/l/c7CGfv9Xc 中記錄個人信息、時間和貢獻,以免專著發(fā)表時遺漏。

本文教程的源代碼見123R簡介和統(tǒng)計繪圖.Rmd,實戰(zhàn)代碼詳見R.Rmd。

為什么要學(xué)習(xí)R


圖. R常用圖形 https://www.r-graph-gallery.com/

為什么選擇R?
  • 多領(lǐng)域的資源, CRAN收錄16170個R包 (20年9月1日),涵蓋了統(tǒng)計學(xué)、經(jīng)濟學(xué)、生態(tài)學(xué)、進化生物學(xué)、生物信息學(xué)、物理、化學(xué)等多學(xué)科。

  • 跨平臺, R可在多個主流操作系統(tǒng)下運行,包括Windows、MacOS和Linux。

  • 命令行驅(qū)動 R即時解釋,輸入命令,即可獲得相應(yīng)的結(jié)果,滿足在繪圖中及時修改的需要。

R語言優(yōu)勢
  • 統(tǒng)計分析能力突出,部分統(tǒng)計功能整合在R語言的底層,但大多數(shù)數(shù)據(jù)分析和可視化功能則以包(packages)的形式提供,資源極其豐富

  • R具有強大的數(shù)據(jù)可視化能力,高質(zhì)量的圖像輸出工具以及多種現(xiàn)代繪圖系統(tǒng):

    如grid, lattice, ggplot2等

  • 擴展和開發(fā)能力,在R中可使用簡潔的方式編寫新的統(tǒng)計方法,甚至整合進其他語言編寫的應(yīng)用程序內(nèi)。

    也可以編制自己的函數(shù),或制作獨立的統(tǒng)計分析包,快速實現(xiàn)新算法

  • 靈活,作為一種平臺,方便與其他工具整合,實現(xiàn)數(shù)據(jù)分析流程化

  • 自由、免費、源代碼開放,與多數(shù)商業(yè)統(tǒng)計軟件相比,R是完全免費的,它囊括了在其他軟件中尚不可用的且先進的統(tǒng)計計算例程(類似于函數(shù),但含義更為豐富,如API接口),是一個可進行交互式數(shù)據(jù)分析和探索的高自由度平臺

R語言缺點
  • 學(xué)習(xí)曲線陡峭:

    因為其功能豐富,導(dǎo)致對應(yīng)幫助文件較多,而由獨立貢獻者編寫的部分模塊則較零散難以完全掌握,初學(xué)者剛開始與代碼打交道,需要記住大量常用命令,無疑提高學(xué)習(xí)難度。

  • 需要大量計算資源:

    所有的待處理數(shù)據(jù)通常需要全部讀入內(nèi)存后才能處理,因此不適合分析超大規(guī)模的數(shù)據(jù)。

  • 運行速度稍慢:

    即時編譯,效率約相當(dāng)于C語言的1/20。

R排名


圖. R語言世界使用率2020年8月排名 https://www.tiobe.com/tiobe-index/

目前R語言是世界上最受歡迎的10大語言之一。而且近些年始終處于上升階段,截止2020年8月位于用戶使用率榜單的第8位,較去年同期使用人數(shù)近乎翻倍。特別是在生命科學(xué)領(lǐng)域,被認(rèn)為是使用頻率最高的語言。其用戶主要集中于專業(yè)領(lǐng)域,目前在移動設(shè)備、網(wǎng)頁中使用率較低,但隨著云端計算平臺的發(fā)展,便攜式移動端也是R未來的發(fā)展方向。

R語言統(tǒng)計繪圖實戰(zhàn)

R軟件下載安裝

R語言 https://www.r-project.org

Rstudio編程集成開發(fā)環(huán)境(IDE,Integrated Development Environment) https://www.rstudio.com

RStudio是一款R語言的IDE,R自帶的環(huán)境操作較為復(fù)雜,而RStudio很好地解決了該問題,而且它還具有調(diào)試、可視化等功能,支持純R腳本、Rmarkdown (腳本文檔混排)、Shiny (交互式網(wǎng)絡(luò)應(yīng)用)等。

具體安裝和配置步驟,詳見:

  • 121個人電腦搭建微生物組分析平臺(Win/Mac)

圖. RStudio界面。主要分為4個區(qū)域。

  • 左上-代碼編輯區(qū):

    編輯和修改代碼并可及時保存,也可以對單行或選擇區(qū)域運行特定代碼,減少代碼復(fù)制粘貼的操作。

  • 右上-環(huán)境變量/歷史區(qū):

    環(huán)境(Environment)面板顯示當(dāng)前加載的函數(shù)和變量的基本信息,如類型、維度等,還可以鼠標(biāo)點擊查看詳細(xì)信息,點擊數(shù)據(jù)表會在代碼編輯區(qū)創(chuàng)建新面板預(yù)覽。

    歷史面板則顯示之前運行過的所有代碼和操作。

  • 左下-代碼執(zhí)行區(qū):

    可以隨時在此處執(zhí)行代碼,在代碼編輯區(qū)選擇并運行的代碼也會顯示在此處。

  • 右下-文件/圖形預(yù)覽區(qū):

    文件(Files)面板是一個資源管理器,可以瀏覽文件并打開,在RStudio server版本中還有文件上傳和下載的功能。

    繪圖(Plots)面板為圖形預(yù)覽區(qū),可顯示繪圖代碼的結(jié)果,還提供了圖片放大,保存為指定尺寸和類型的功能。

    包(Packages)面板顯示己安裝的包,并可手動勾選加載或卸載,也可以進行包的安裝和升級。

R語言包安裝

R包主要來源CRAN,Bioconductor和Github三個網(wǎng)站。

  • CRAN包安裝

CRAN是R官方包的發(fā)布網(wǎng)站,安裝方法如下:以繪圖包ggplot2為例。

install.packages("ggplot2")

R包默認(rèn)覆蓋安裝,反復(fù)運行上述代碼會多次下載該包并重新安裝,不僅非常浪費時間,而且有時還會破壞原有包導(dǎo)致無法正常使用。推薦大家安裝包時采用如下條件判斷方法安裝:即使用requireNamespace()函數(shù)判斷目標(biāo)包是否存在,如不存在時才安裝。

if (!requireNamespace("ggplot2", quietly=TRUE))
install.packages("ggplot2")

在RStudio中默認(rèn)使用美國數(shù)據(jù)源,如果下載慢,可指定國內(nèi)鏡像,如清華、中科大等離自己物理距離較近的國內(nèi)鏡像倉庫。

圖. R包安裝源的選擇。選擇Tools菜單 —— Global Options選項,按上圖標(biāo)識順序切換為國內(nèi)源。

也可以在代碼層面指定安裝源,如清華鏡像源”https://mirrors.tuna.tsinghua.edu.cn/CRAN"。

site="https://mirrors.tuna.tsinghua.edu.cn/CRAN"
if (!requireNamespace("ggplot2", quietly=TRUE))
install.packages("ggplot2", repos=site)
  • CRAN來源包的菜單安裝

使用RStudio中的包管理頁面安裝:

  • 選擇右下角 Packages選項卡,

  • 點擊Install;

  • 輸入包名,會有提示,可供選擇;

  • 點擊Install安裝。

    • Bioconductor包安裝

    Bioconductor是專門發(fā)布生信相關(guān)R包的網(wǎng)站,目前已經(jīng)發(fā)了1903個R包。

    網(wǎng)址:https://bioconductor.org

    安裝Bioconductor的包,需要先安裝CRAN來源的BiocManager包,此處以edgeR為例。注:edgeR是當(dāng)前較流行的具有測序數(shù)據(jù)差異比較功能的R包。

    # 檢查BiocManager包是否存在,不存在則安裝
    if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
    # 使用BiocManager安裝Bioconductor的包
    if (!requireNamespace("edgeR", quietly = TRUE))
    BiocManager::install("edgeR")
    • Github的R包安裝

    CRAN和Bioconductor內(nèi)都是經(jīng)過檢測正式發(fā)布的R包。還有很多臨時、或正在開發(fā)中的包只存在Github,如果需要使用這些R包,我們可以使用開發(fā)者工具devtools進行安裝。

    安裝Github的R包,輸入名稱由用戶名和包名兩部分組成。以我編寫的amplicon包為例,保存于github中的microbiota用戶下,其提供了擴增子分析常用統(tǒng)計分析和繪圖樣式的函數(shù)。

    # 檢查devtools是否存在,沒有則安裝
    if (!requireNamespace("devtools", quietly = TRUE))
    install.packages("devtools")
    # 加載devtools
    library(devtools)
    # 判斷amplicon是否存在,沒有使用devtools安裝
    if (!requireNamespace("amplicon", quietly = TRUE))
    devtools::install_github("microbiota/amplicon")

    此外,很多R包的最新版,也都在github上保存,想要體驗最新版本的功能,也可查找軟件的github倉庫位置并采用上述方法安裝所需版本。

    注意:R的源碼方式安裝,有時還需要額外安裝Rtools。Windows版本下載鏈接:https://cran.r-project.org/bin/windows/Rtools/

    R數(shù)據(jù)基本類型
    • 數(shù)值型 (numeric):

      1, 2, 3, 5.1, 6.6, 1e5等 (繪圖時一般作為連續(xù)變量對待)

    • 字符型 (character):

      ”yongxin”, “meta-genome”, ‘yi sheng xin’ (單個或多個字母或其他符號的組合,需要用引號括起)

    • 邏輯型 (logical):

      TRUE, FALSE (布爾值),通常縮寫為T和F

    • 缺失值:

      NA, NaN, Inf

    • 空值:

      NULL

    圖. R語言數(shù)據(jù)結(jié)構(gòu)。向量(vector)、矩陣(matrix)、數(shù)組(array)、數(shù)據(jù)框(data frame / table)、列表(lists)


    圖. 向量(vector)、列表(lists)、矩陣(matrix)、數(shù)據(jù)框(data frame / table)的索引方式

    • 向量(vector)

    向量存儲相同的數(shù)據(jù)類型。如果有字符型元素,所有元素都轉(zhuǎn)換為字符型。

    is.atomic() 判斷是否為向量。

    is.vector() 判斷沒有屬性或僅有names屬性的向量為真(TRUE)

    a # 判斷一個變量是不是vector
    is.vector(a)
    is.atomic(a)
    • 因子(factor)

    因子是節(jié)省存儲空間的特殊類型,適用于存在較多重復(fù)值情況。每個原值只存儲一份,在原數(shù)據(jù)中用數(shù)字表示。去重后的原值被稱為水平 (level),可以修改順序。繪圖時調(diào)整順序就是使用的這個。

    a b # 注意levels默認(rèn)是字母順序
    b

    更改因子的順序

    # 設(shè)置levels
    b levels=c("y","x","s","e","g","i","h","n"),
    ordered=T)
    b
    • 矩陣(matrix)

    矩陣是二維的數(shù)組(array),所有元素都是相同類型。可以使用[row, col]索引。

    常用矩陣相關(guān)函數(shù):

    • dim():

      獲取矩陣的維數(shù)

    • rowSums(), colSums():

      獲取行列加和

    • max(), min():

      獲取最大、最小值

    # 矩陣
    a a
    a[3,4]
    • 列表(list)

    列表是不同類型的變量組合在一起,常用于存儲各種復(fù)雜類型函數(shù)或繪圖的輸出數(shù)據(jù)。

    ysx_list staff=c("LYX","CL","ZX","CT"),
    contentL=list(R=c("basic","plot"),
    Linux=c("basic","windows")))
    ysx_list
    • 數(shù)據(jù)框(dataframe)

    數(shù)據(jù)框,子列表長度一致的特殊list,具有l(wèi)ist和matrix的雙重特性,通常與matrix可互換。
    若在程序運行時碰到”‘x’ must be matrix”,需要做下as.matrix轉(zhuǎn)換;若是”‘x’ must be data.frame”,需要做下as.data.frame轉(zhuǎn)換。這里的x是你提供的數(shù)據(jù)變量。

    a unit=c("Ehbio","IGDB","IM","IM"))
    • R數(shù)據(jù)類型 – 查看

  • storage.mode 查看變量在內(nèi)存中存儲的方式

  • class 查看對象所屬的類

  • mode 查看對象的類型

  • typeof 查看對象的類型

  • str 查看數(shù)據(jù)結(jié)構(gòu)

  • summary 查看數(shù)據(jù)內(nèi)容總結(jié)

  • 查看數(shù)據(jù)類型

    mode(a)
    class(a)
    typeof(a)
    storage.mode(a)
    mode(ysx_list)
    class(ysx_list)
    class(ysx_list$web)
    storage.mode(class(ysx_list$web))
    class(ysx_list$staff)
    storage.mode(ysx_list$staff)
    typeof(2)
    typeof(as.integer(2))
    R數(shù)據(jù)讀寫
    • read.table讀入數(shù)據(jù)存儲為數(shù)據(jù)框

    df head(df)

    read.table常用的4個參數(shù)。輸入文件;標(biāo)題行(header),可選T/F;行名(row.names),默認(rèn)為NULL,通常指定第一列(1);分隔符(sep)默認(rèn)為空,通常要指定制表符(\t)或分號(;)。

    其他常用參數(shù):

    • 跳過注釋行:

      comment.char = “#”,如果表頭包含#且需要讀入,可改為空””。

    • 是否轉(zhuǎn)換為因子:

      在3.x版本時默認(rèn)轉(zhuǎn)換,在4.x時默認(rèn)不轉(zhuǎn)換,想要轉(zhuǎn)換為因子,需要使用stringsAsFactors=T自動轉(zhuǎn)換。

    更多幫助查看?read.table。

    • write.table寫數(shù)據(jù)框或矩陣到文件

    write.table(df, file="metadata.tsv", append=F, quote=F, sep="\t", row.names=T, col.names=T)

    write.table常用的參數(shù)。

    • 要保存的變量(x)

    • 輸出文件名(file),要使用雙引號;

    • 追加寫入(append):

      默認(rèn)(F)不追加,沒文件創(chuàng)建新文件;

      有文件時將覆蓋;

      想要多次累計寫入改為T;

    • 引號(quote):

      默認(rèn)為T,每個單元格加雙引號,建議改為F;

    • 分隔符(sep)默認(rèn)為空格,通常要指定制表符(\t)或分號(;);

    • 換行符(eol):

      默認(rèn)為linux換行符(\n),當(dāng)不需要換行時可改為空””;

    • 行名(row.names),默認(rèn)為T,不需要使用F,否則會出現(xiàn)1/2/3的行編號;

    • 列名(col.names),默認(rèn)為T,不需要使用F;

    統(tǒng)計t-test/anova
    • t-test兩組比較

    我們先隨機生成兩組數(shù)據(jù),然后用T檢驗進行顯著性分析。

    # rnorm生成以0為均值,1為標(biāo)準(zhǔn)差的10個數(shù)
    A = rnorm(10)
    # rnorm生成以3為均值,1為標(biāo)準(zhǔn)差的10個數(shù)
    B = rnorm(10, 3, 1)
    # t檢驗
    t.test(A, B)
    • anova多組比較

    data(iris) # 加載R內(nèi)容測試數(shù)據(jù)——鳶尾花數(shù)據(jù)
    head(iris) # 顯示數(shù)據(jù)格式
    # anova統(tǒng)計不同物種花萼長寬數(shù)據(jù)
    model = aov(Sepal.Length ~ Species, data=iris)
    Tukey_HSD # 顯示統(tǒng)計結(jié)果
    Tukey_HSD$Species
    箱線圖展示組間差異

    library加載ggplot2包,采用內(nèi)置鳶尾花數(shù)據(jù)繪制箱線圖,并用ggsave保存為指定大小的PDF矢量圖。

    library(ggplot2)
    # ggplot命令繪圖,指定數(shù)據(jù)、x、y、顏色、圖表類型
    (p = ggplot(iris, aes(x=Species, y=Sepal.Length, color=Species)) +
    geom_boxplot())
    # ggsave保存圖片
    ggsave(paste0("26boxplot.pdf"), p, width=89, height=59, units="mm")

    更多ggplot2的內(nèi)容,請閱讀ggplot2作者Hadley Wickham編寫的《ggplot2 Elegant Graphics for Data Analysis》。此書2016年由Springer出版,目前已經(jīng)被引用2萬余次。本書的最新版及源代碼詳見:https://github.com/hadley/ggplot2-book

    此外公眾號也分享過學(xué)習(xí)ggplot2繪圖基礎(chǔ)筆記如下,供參考:

    • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)

    • ggplot2地理信息可視化 上 下

    • 1初識ggplot2繪制幾何對象

    • 2圖層的使用—基礎(chǔ)、加標(biāo)簽、注釋

    • 3工具箱—誤差線、加權(quán)數(shù)、展示數(shù)據(jù)分布

    • 4語法基礎(chǔ)

    • 5通過圖層構(gòu)建圖像

    • 6標(biāo)度、軸和圖例

    • 7定位-分面和坐標(biāo)系

    • 8主題設(shè)置、存儲導(dǎo)出

    • 9繪圖需要的數(shù)據(jù)整理技術(shù)

    • ggThemeAssist:鼠標(biāo)調(diào)整ggplot2主題,不用再記這些代碼啦!

    • 不需要懂得編程,但卻可以使用ggplot2畫出論文級別的圖?esquisse

    • ggplot版本的華夫餅圖吧

    參考文獻

    • ggplot2 Elegant Graphics for Data Analysis https://github.com/hadley/ggplot2-book

    • 宏基因組R相關(guān)教程 https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA

    • 生信寶典R系列教程 http://mp.weixin.qq.com/s/i71OMaUu6QtcY0pt1njHQA

    責(zé)編:劉永鑫 中科院遺傳發(fā)育所

    版本更新歷史

    1.0.0,2020/8/30,劉永鑫,初稿

    1.0.1,2020/8/31,吳翔宇 寧波大學(xué),全文校對

    1.0.3,2020/8/31,劉永鑫,整合校對

    猜你喜歡

    10000+:菌群分析?寶寶與貓狗?梅毒狂想曲 提DNA發(fā)Nature?Cell專刊?腸道指揮大腦

    系列教程:微生物組入門 Biostar 微生物組 ?宏基因組

    專業(yè)技能:學(xué)術(shù)圖表?高分文章?生信寶典 不可或缺的人

    一文讀懂:宏基因組 寄生蟲益處 進化樹

    必備技能:提問 搜索 ?Endnote

    文獻閱讀 熱心腸 SemanticScholar Geenmedical

    擴增子分析:圖表解讀 分析流程 統(tǒng)計繪圖

    16S功能預(yù)測 ? PICRUSt ?FAPROTAX ?Bugbase Tax4Fun

    在線工具:16S預(yù)測培養(yǎng)基 生信繪圖

    科研經(jīng)驗:云筆記 ?云協(xié)作 公眾號

    編程模板:?Shell ?R Perl

    生物科普:??腸道細(xì)菌?人體上的生命?生命大躍進 ?細(xì)胞暗戰(zhàn) 人體奧秘 ?

    寫在后面

    為鼓勵讀者交流、快速解決科研困難,我們建立了“宏基因組”專業(yè)討論群,目前己有國內(nèi)外5000+ 一線科研人員加入。參與討論,獲得專業(yè)解答,歡迎分享此文至朋友圈,并掃碼加主編好友帶你入群,務(wù)必備注“姓名-單位-研究方向-職稱/年級”。PI請明示身份,另有海內(nèi)外微生物相關(guān)PI群供大佬合作交流。技術(shù)問題尋求幫助,首先閱讀《如何優(yōu)雅的提問》學(xué)習(xí)解決問題思路,仍未解決群內(nèi)討論,問題不私聊,幫助同行。

    學(xué)習(xí)16S擴增子、宏基因組科研思路和分析實戰(zhàn),關(guān)注“宏基因組”

    總結(jié)

    以上是生活随笔為你收集整理的dataframe第二列 r语言_123.R简介和统计绘图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。