整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          獨家|手把手教你學(xué)習(xí)R語言(附資源鏈接)

          獨家|手把手教你學(xué)習(xí)R語言(附資源鏈接)

          者:NSS

          翻譯:楊金鴻

          術(shù)語校對:韓海疇

          全文校對:林亦霖

          本文約3000字,建議閱讀7分鐘

          本文為帶大家了解R語言以及分段式的步驟教程!

          人們學(xué)習(xí)R語言時普遍存在缺乏系統(tǒng)學(xué)習(xí)方法的問題。學(xué)習(xí)者不知道從哪開始,如何進行,選擇什么學(xué)習(xí)資源。雖然網(wǎng)絡(luò)上有許多不錯的免費學(xué)習(xí)資源,然而它們多過了頭,反而會讓人挑花了眼。

          為了構(gòu)建R語言學(xué)習(xí)方法,我們在Vidhya和DataCamp中選一組綜合資源,幫您從頭學(xué)習(xí)R語言。這套學(xué)習(xí)方法對于數(shù)據(jù)科學(xué)或R語言的初學(xué)者會很有用;如果讀者是R語言的老用戶,則會由本文了解這門語言的部分最新成果。

          R語言學(xué)習(xí)方法會幫助您快速、高效學(xué)習(xí)R語言。

          前言

          在開始學(xué)習(xí)之前,第一個要回答的問題是:為什么要用R語言?或者R語言為何如此有用?

          R語言是一門快速發(fā)展的開源軟件,是SAS、STATA和SPSS這類商業(yè)軟件的競爭對手。就業(yè)市場對R語言的需求正在迅速上升,微軟等公司也同時承諾將致力讓R語言成為數(shù)據(jù)科學(xué)通用語言。

          看看由Revolution Analytics制作的90秒視頻(https://www.youtube.com/watch?v=VlJnNSeO1uQ),您就知道R語言的用處。順便說下,微軟剛剛收購了Revolution Analytics。

          步驟一:配置計算機環(huán)境

          建立R語言學(xué)習(xí)環(huán)境最簡單方法是通過綜合R語言歸檔網(wǎng)絡(luò)(CRAN)下載(https://cran.r-project.org/)到您的本地計算機上。可以選擇Linux、Mac和Windows對應(yīng)二進制文件下載。

          您可能會考慮使用R語言自帶的控制臺,但我們建議您安裝R語言集成開發(fā)環(huán)境(IDE)。RStudio(https://www.rstudio.com/)是最有名的IDE,它能讓R語言編碼更容易、更快,還能讓您輸入多行代碼、處理圖形、安裝和維護程序,有效引導(dǎo)您的編程環(huán)境。RStudio此外可以選用基于eclipse的Architect(http://www.openanalytics.eu/architect)。如果需要安裝圖形用戶界面(GUI),請選擇R-commander(http://www.rcommander.com/)或Deducer(http://www.deducer.org/pmwiki/index.php?n=Main.WindowsInstallation)。

          課后作業(yè)

          • 安裝R和RStudio。

          • 安裝Rcmdr、rattle和Deducer程序包。以及推薦或依賴的程序包,包括GUI。

          • 使用庫命令加載安裝程序,并打開GUI。

          步驟二:R語言基礎(chǔ)學(xué)習(xí)

          您應(yīng)該首先了解語言、庫和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識。

          如果您更傾向于在線交流方式學(xué)習(xí)R語法,DataCamp(https://www.datacamp.com/courses/free-introduction-to-r)提供的免費在線R教程是很好的資源。還可以選擇后續(xù)課程:中級R編程(https://www.datacamp.com/courses/intermediate-r)。另一種學(xué)習(xí)方法是在線版本swirl(https://www.datacamp.com/swirl-r-tutorial),它能讓您在類似RStudio環(huán)境中學(xué)習(xí)R語言。

          在互動學(xué)習(xí)環(huán)境中,您可以選擇參加Coursera(https://www.coursera.org/specializations/jhu-data-science)或Edx(https://www.edx.org/course/introduction-r-programming-microsoft-dat204x-0)上mooc課程。

          除了上述在線資源,您還可以考慮以下優(yōu)秀資源:

          • CRAN免費教學(xué)R語言(https://cran.r-project.org/doc/manuals/R-intro.pdf)。

          • Jared Lander’s R for Everyone(http://www.jaredlander.com/r-for-everyone/)

          • Quick-R(http://statmethods.net/)

          專門學(xué)習(xí):閱讀、數(shù)據(jù)幀、表、概述、描述、加載和安裝包、使用繪圖命令可視化數(shù)據(jù)。

          課后作業(yè)

          • 使用DataCamp免費在線R教程,熟悉基本的R語法。

          • 創(chuàng)建Github(http://github.com/)賬號。

          • 通過google幫助,解決安裝過程中出現(xiàn)的問題。

          • 安裝swirl包并學(xué)習(xí)R編程(見上文)。

          步驟三:了解R社

          強大社區(qū)的存在是R語言發(fā)展迅速、大獲成功的主要原因。社區(qū)中核心的是R語言的“包”生態(tài)系統(tǒng)。R語言程序包可以在CRAN、bioconductor、github和bitbucket中下載。在Rdocumentation(http://www.rdocumentation.org/)中,您可以輕松搜索來自CRAN、github和bioconductor中能滿足您當(dāng)前工作需要的程序包。與在R語言程序包生態(tài)系統(tǒng)同樣重要的是,您可以在R endeavours上輕松獲得幫助與反饋。首先,R內(nèi)置幫助系統(tǒng),您可以通過命令來訪問。同時,在Analytics Vidhya Discussions,Stack OverflowR語言是增長最快語言。R-bloggers(http://www.r-bloggers.com/)匯集許多R語言愛好者寫的博文。

          課后作業(yè):

          • 訪問CranTask Views了解R語言生態(tài)系統(tǒng)。

          • 在http://r-bloggers.com上注冊并訂閱每日新聞。

          步驟四:數(shù)據(jù)導(dǎo)入和操作

          導(dǎo)入和操作數(shù)據(jù)是數(shù)據(jù)科學(xué)工作流程中重要步驟。R語言允許使用特定包導(dǎo)入不同數(shù)據(jù)格式,從而使您工作更輕松,如下:

          • readr:導(dǎo)入平面文件。

          • Readxl package:將excel文件轉(zhuǎn)化為R語言。

          • haven package包:讓您將SAS、STATA和SPSS數(shù)據(jù)文件導(dǎo)入R語言。

          • Databases:連接通過像RMySQL和RpostgreSQL包,使用DBI訪問和操作。

          • rvest: 網(wǎng)頁數(shù)據(jù)抓取。

          一旦數(shù)據(jù)在工作環(huán)境中可用,您就可以使用下面程序包操作:

          • 整理數(shù)據(jù)的tidyr程序包。

          • stringr包處理字符串操作。

          • 對象數(shù)據(jù)幀,可以學(xué)習(xí)dplyr包輸入和輸出(https://www.datacamp.com/courses/dplyr-data-manipulation)。

          • 需要執(zhí)行繁重數(shù)據(jù)爭用任務(wù)?試試data.table程序包。

          • 執(zhí)行時間序列分析?嘗試一下像zoo,xts和quantmod程序包。

          課后作業(yè)

          • 通過“導(dǎo)入數(shù)據(jù)進入R語言”課程,或閱讀文章1、2、3、4。掌握導(dǎo)入數(shù)據(jù)軟件包。

          • 通過RStudio觀看Data Wrangling with R 。(https://www.rstudio.com/resources/webinars/data-wrangling-with-r-and-rstudio/)

          • 閱讀并練習(xí)如何使用dplyr、tidyr和data.table程序包。

          步驟五:有效數(shù)據(jù)可視化

          自己創(chuàng)建數(shù)據(jù)可視化作品是一件很自豪的事情。然而,數(shù)據(jù)可視化既是一項技能,也是一門藝術(shù)。許多學(xué)者閱讀Edward Tufte 的“可視化定量數(shù)據(jù)”原理,或者StephenFew的 “pitfalls on dashboard design”。也可以閱讀NathanYau在FlowingData 寫的博文,來獲得創(chuàng)建R語言可視化靈感。

          1. 平面圖無處不在

          R語言提供了多種創(chuàng)建圖形方法,使用原理圖創(chuàng)建圖形是標(biāo)準(zhǔn)的方法。然而,有一些好的工具(或包)使用更簡單的方式來創(chuàng)建,查看圖形。

          • 在R語言中學(xué)習(xí)基本圖形語法是數(shù)據(jù)可視化中一種實用方法。

          • 在R語言中g(shù)gplot是數(shù)據(jù)可視化中最重要的包,并且很受歡迎,網(wǎng)上有很多它的學(xué)習(xí)資源,比如在線ggplot2教程,cheatsheet ,和以及一本由哈德利韋翰編寫的教學(xué)書。

          • ggvis程序包允許您使用基本圖形語法創(chuàng)建交互式web圖形(參見教程)。

          • 您知道Hans Rosling ted課程嗎?教您如何的用googleVis(一個帶有谷歌圖表接口)來重建圖表。

          • 如果您遇到了繪制數(shù)據(jù)的問題,這篇文章會對您有所幫助。在這個CRAN任務(wù)視圖中可以查看到更多的可視化資源。或者查看R語言數(shù)據(jù)可視化指南。

          2. 地圖無處不在

          您對分析空間可視化數(shù)據(jù)感興趣嗎?學(xué)習(xí)本教程:介紹R語言空間數(shù)據(jù),您會輕松地使用這些包。

          • 源自Google maps和ggmap開放街道的靜態(tài)圖片,可用來創(chuàng)建可視化空間數(shù)據(jù)和模型。

          • Ari Lamstein’s中的choroplethr程序包。

          • tmap 程序包

          3. HTML插件

          HTML插件是R語言可視化產(chǎn)品中非常有前景的插件,您可以用簡單的方式創(chuàng)建交互式web可視化(參見RStudio教程),掌握這種可視化方法將會成為R語言學(xué)習(xí)中必備技能。其帶來的視覺效果會給您朋友和同事留下深刻印象。

          • leaflet創(chuàng)建動態(tài)圖片。

          • 使用dygraphs生成時間序列數(shù)據(jù)圖表。

          • 互動表(datatable)。

          • DiagrammeR創(chuàng)建圖和流程圖。

          • MetricsGraphics創(chuàng)建散點圖、線圖和直方圖。

          課后作業(yè)

          • 理解基本圖形語法原理。

          • 學(xué)習(xí)ggplot2教程。

          • 使用RStudio環(huán)境學(xué)習(xí)html插件。

          步驟六:數(shù)據(jù)挖掘、機器學(xué)習(xí)

          對于新的統(tǒng)計數(shù)據(jù)學(xué)習(xí)方法,我們推薦下列資源:

          • Andrew Conway’s課程:R語言統(tǒng)計數(shù)據(jù)簡介。

          • 杜克大學(xué)數(shù)據(jù)分析和統(tǒng)計推斷。

          • R語言實用數(shù)據(jù)科學(xué)。

          • 約翰霍普金斯大學(xué)數(shù)據(jù)科學(xué)專業(yè)課程。

          • R語言數(shù)據(jù)科學(xué)使用指南。

          如果您想提高機器學(xué)習(xí)能力,可以考慮從以下教程開始學(xué)習(xí):

          • 機器學(xué)習(xí)算法要點。

          • 自行車共享大賽--一套R語言完整解決方案。

          • Kaggle上的機器學(xué)習(xí)課程。

          • 掌握機器學(xué)習(xí)。

          • 介紹機器學(xué)習(xí)。

          確保在相關(guān)的CRAN任務(wù)視圖中查看到R語言可用的機器學(xué)習(xí)資源。

          課后作業(yè)

          • 從統(tǒng)計學(xué)課程開始入門。

          • 學(xué)習(xí)Kaggle上免費機器學(xué)習(xí)課程。

          • 看Rattle中的一些R語言數(shù)據(jù)挖掘書。

          • 可以從這本小冊子上學(xué)習(xí)時間序列——A Little Book for Time Series in R .

          步驟七:報告結(jié)果

          與數(shù)據(jù)科學(xué)愛好者交流成果,分享見解是一件很重要的事情。幸運的是,R語言針對這個問題有一些非常實用工具。

          第一個工具是R Markdown,采用knitr和pandoc復(fù)制方式生成您的數(shù)據(jù)分析結(jié)果報告。使用R markdown工具,R語言最終生成文檔,替換R語言代碼。文檔可以是html、word、pfd、ioslides等格式。您可以通過本教程學(xué)到更多知識并使用cheatsheet作為參考資料。

          第二個工具是ReporteRs,它是個創(chuàng)建Microsoft(Worddocx和Powerpoint pptx)和html R語言文檔程序包,并可以在Windows、Linux、Unix和Mac OS系統(tǒng)上運行。像R Markdown工具一樣自動生成R語言報告,點擊這里我們來看看如何操作。

          第三個是Shiny,目前R語言中最令人興奮的工具。使R語言構(gòu)建交互式web應(yīng)用程序變得非常容易。您可以把分析報告轉(zhuǎn)換為交互式web應(yīng)用程序,您不需要了解HTML、CSS或Javascript相關(guān)知識。如果您想要學(xué)習(xí)Shiny ,請點擊RStudio learning portal。

          課后作業(yè)

          • 使用RMarkdown或ReporteRs創(chuàng)建第一個交互式報告。

          • 嘗試構(gòu)建一個Shiny應(yīng)用。

          練習(xí)

          只有通過大量練習(xí)才能成為優(yōu)秀R語言程序員。因此,要定期解決數(shù)據(jù)科學(xué)中的問題。我們的建議是趕緊開始與Kaggle上的數(shù)據(jù)科學(xué)家交流。

          在解決問題中測試自己的R語言水平--練習(xí)中的問題。

          步驟八:時間序列分析

          R語言有一個用于專屬任務(wù)視圖時間序列。如果你想在R語言中做一些時間序列分析,這將是您開始的地方。您很快會發(fā)現(xiàn)工具的強大。

          想要從在線資源中掌握時間序列分析是件不容易的事情。好的切入點是一本關(guān)于時間序列的書或者選擇《原理與實踐》這本書。在程序包方面,您需要熟悉Zoo與xts程序包。Zoo為您提供了常用的保存時間序列對象格式,而xts供了操作時間序列的數(shù)據(jù)集工具。

          輔助資源: 時間序列綜合教程。

          課后作業(yè)

          • 選擇上述列出的時間系列教程,開始您的分析。

          • 使用quantmod或quandl程序軟件包下載財務(wù)數(shù)據(jù),開始您的時間序列分析。

          • 使用諸如dygraphs的程序包創(chuàng)建您的可視化時間序列數(shù)據(jù)和分析。

          文本挖掘一個重要工具

          學(xué)習(xí)文本挖掘,您可以從edge課程中學(xué)習(xí)。雖然課程已經(jīng)結(jié)束,但是您仍然可以訪問這些課程。

          練習(xí)

          • 文本挖掘競賽--一套R語言的完整解決方案。

          步驟九:成為R語言大師

          現(xiàn)在您已經(jīng)掌握了大部分R語言數(shù)據(jù)分析,是時候給出一些高級課程資源了。您很可能已經(jīng)知道其中的一些內(nèi)容,但不妨看看這些教程。

          • Hadley Wickham的高級R語言教程。

          • 在Hadoop、MongoDB或NoSQL中使用R語言。

          • 微軟的RevoScaleR 程序包

          原文鏈接:

          https://www.analyticsvidhya.com/learning-paths-data-science-business-analytics-business-intelligence-big-data/learning-path-r-data-science/

          楊金鴻,北京護航科技有限公司員工,在業(yè)余時間喜歡翻譯一些技術(shù)文檔。喜歡閱讀有關(guān)數(shù)據(jù)挖掘、數(shù)據(jù)庫之類的書,學(xué)習(xí)java語言編程等,希望能在數(shù)據(jù)派平臺上熟識更多愛好相同的伙伴,今后能在數(shù)據(jù)科學(xué)的道路上走的更遠,飛的更遠。

          能轉(zhuǎn)換:R圖和統(tǒng)計表轉(zhuǎn)成發(fā)表級的Word、PPT、Excel、HTML、Latex、矢量圖等

          R包export可以輕松的將R繪制的圖和統(tǒng)計表輸出到 Microsoft Office (Word、PowerPoint和Excel)、HTML和Latex中,其質(zhì)量可以直接用于發(fā)表。

          • 你和PPT高手之間,就只差一個iSlide
          • Excel改變了你的基因名,30% 相關(guān)Nature文章受影響,NCBI也受波及


          特點

          1. 可以用命令將交互式R圖或ggplot2Latticebase R圖保存到Microsoft Word、Powerpoint或其他各種位圖或矢量格式。
          2. 完全可編輯的Powerpoint矢量格式輸出,支持手動整理繪圖布局。
          3. 統(tǒng)計分析的輸出保存為Excel、Word、PowerPoint、Latex或HTML文檔的表格形式。
          4. 自定義R輸出格式。

          安裝

          export包可以在Windows、Ubuntu和Mac上跨平臺運行。不過有些Mac發(fā)行版默認(rèn)情況下沒有安裝cairo設(shè)備,需要自行安裝。如果Mac用戶已安裝XQuartz,這個問題就解決了,它可以從https://www.xquartz.org/免費獲得。

          官方CRAN發(fā)布 (以不能用)

          install.packages("export")

          從 Github 安裝 (推薦


          install.packages("officer")
          install.packages("rvg")
          install.packages("openxlsx")
          install.packages("ggplot2")
          install.packages("flextable")
          install.packages("xtable")
          install.packages("rgl")
          install.packages("stargazer")
          install.packages("tikzDevice")
          install.packages("xml2")
          install.packages("broom")
          install.packages("devtools")
          devtools::install_github("tomwenseleers/export")
          


          該包主要包括以下幾種轉(zhuǎn)換

          • graph2bitmap
          • graph2office
          • graph2vector
          • rgl2bitmap 轉(zhuǎn)換3D圖
          • table2office
          • table2spreadsheet
          • table2tex
          • graph2bitmap: 將當(dāng)前R圖保存到bmp文件中
          • graph2png: 將當(dāng)前R圖保存到png文件中
          • graph2tif: 將當(dāng)前R圖保存到TIF文件中
          • graph2jpg: 將當(dāng)前R圖保存為JPEG文件

          使用幫助信息如下

          graph2bitmap(x=NULL, file="Rplot", fun=NULL, type=c("PNG","JPG", "TIF"),
                  aspectr=NULL, width=NULL, height=NULL, dpi=300,scaling=100,
                  font=ifelse(Sys.info()["sysname"]=="Windows", "Arial",
                  "Helvetica")[[1]], bg="white", cairo=TRUE,
                  tiffcompression=c("lzw", "rle", "jpeg", "zip", "lzw+p", "zip+p"),
                  jpegquality=99, ...)
          
          • aspectr: 期望縱橫比。如果設(shè)置為空,則使用圖形設(shè)備的縱橫比。
          • width: 所需寬度(英寸);可以與期望的縱橫比aspectr組合。
          • height: 所需高度(英寸);可以與期望的縱橫比aspectr組合。
          • scaling: 按一定比例縮放寬度和高度。
          • font: PNG和TIFF輸出中標(biāo)簽所需的字體; Windows系統(tǒng)默認(rèn)為Arial,其他系統(tǒng)默認(rèn)為Helvetica。
          • bg: 所需的背景顏色,例如“白色”或“透明”。
          • cairo: 邏輯,指定是否使用Cairographics導(dǎo)出。
          • tiffcompression: 用于TIF文件的壓縮。
          • jpegquality: JPEG壓縮的質(zhì)量。

          準(zhǔn)備開始

          安裝完 export包后,先調(diào)用該包

          library(export)
          

          用ggplot2繪圖

          library(ggplot2)
          library(datasets)
          
          x=qplot(Sepal.Length, Petal.Length, data=iris,
                  color=Species, size=Petal.Width, alpha=I(0.7))
          

          qplot()的意思是快速作圖,利用它可以很方便的創(chuàng)建各種復(fù)雜的圖形,其他系統(tǒng)需要好幾行代碼才能解決的問題,用qplot只需要一行就能完成。

          使用半透明的顏色可以有效減少圖形元素重疊的現(xiàn)象,要創(chuàng)建半透明的顏色,可以使用alpha圖形屬性,其值從0(完全透明)到1(完全不透明)。更多ggplot2繪圖見ggplot2高效實用指南 (可視化腳本、工具、套路、配色) (往期教程更有很多生物信息相關(guān)的例子)。

          鳶尾花(iris)是數(shù)據(jù)挖掘常用到的一個數(shù)據(jù)集,包含150個鳶尾花的信息,每50個取自三個鳶尾花種之一(setosa,versicolourvirginica)。每個花的特征用下面的5種屬性描述萼片長度(Sepal.Length)、萼片寬度(Sepal.Width)、花瓣長度(Petal.Length)、花瓣寬度(Petal.Width)、類(Species)。

          在console里展示數(shù)據(jù)圖 (長寬比自己調(diào)節(jié)):

          導(dǎo)出圖形對象

          # 需運行上面的ggplot2繪圖
          # Create a file name
          # 程序會自動加后綴
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2bitmap():
          ### 1. Pass the plot as an object
          graph2png(x=x, file=filen, dpi=400, height=5, aspectr=4)
          graph2tif(x=x, file=filen, dpi=400, height=5, aspectr=4)
          graph2jpg(x=x, file=filen, dpi=400, height=5, aspectr=4)
          

          導(dǎo)出當(dāng)前繪圖窗口展示的圖

          ### 2. Get the plot from current screen device
          # 注意這個x,是運行命令,展示圖像
          x
          graph2png(file=filen, dpi=400, height=5, aspectr=4)
          graph2tif(file=filen, dpi=400, height=5, aspectr=4)
          graph2jpg(file=filen, dpi=400, height=5, aspectr=4)
          

          導(dǎo)出自定義函數(shù)輸出的一組圖

          ### 3. Pass the plot as a functio
          plot.fun <- function(){
            print(qplot(Sepal.Length, Petal.Length, data=iris,
                        color=Species, size=Petal.Width, alpha=0.7))
          }
          graph2png(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          graph2tif(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          graph2jpg(file=filen, fun=plot.fun, dpi=400, height=5, aspectr=4)
          

          轉(zhuǎn)換后的圖形:

          與Office系列的交互

          大部分圖的細節(jié)修改都是用代碼完成的,不需要后續(xù)的修飾;但如果某一些修改比較特異,不具有程序的通用性特征,或?qū)崿F(xiàn)起來比較困難,就可以考慮后期修改。比如用AI文章用圖的修改和排版。熟悉PPT的,也可以用PPT,這時R的圖導(dǎo)出PPT,就要用到graph2office系列函數(shù)了。

          graph2ppt: 將當(dāng)前R圖保存到Microsoft Office PowerPoint/LibreOffice Impress演示文稿中。

          graph2doc:將當(dāng)前的R圖保存到Microsoft Office Word/LibreOffice Writer文檔中。

          函數(shù)參數(shù)展示和解釋

          graph2office(x=NULL, file="Rplot", fun=NULL, type=c("PPT", "DOC"),
                  append=FALSE, aspectr=NULL, width=NULL, height=NULL,scaling=100,
                  paper="auto", orient=ifelse(type[1]=="PPT","landscape", "auto"),
                  margins=c(top=0.5, right=0.5, bottom=0.5, left=0.5),
                  center=TRUE, offx=1, offy=1, upscale=FALSE, vector.graphic=TRUE, ...)
          
          • margins: 預(yù)設(shè)留白邊距向量。
          • paper: 紙張尺寸——“A5”至“A1”用于Powerpoint導(dǎo)出,或“A5”至“A3”用于Word輸出;默認(rèn)“auto”自動選擇適合您的圖形的紙張大小。如果圖太大,無法在給定的紙張大小上顯示,則按比例縮小。
          • orient: 所需的紙張方向-“自動”,“縱向”或“橫向”; Word輸出默認(rèn)為“自動”,Powerpoint默認(rèn)為“橫向”。
          • vector.graphic: 指定是否以可編輯的向量DrawingML格式輸出。默認(rèn)值為TRUE,在這種情況下,編輯Powerpoint或Word中的圖形時,可以先對圖形元素進行分組。如果設(shè)置為FALSE,則將該圖以300 dpi的分辨率柵格化為PNG位圖格式。(柵(shān)格化,是PS中的一個專業(yè)術(shù)語,柵格即像素,柵格化即將矢量圖形轉(zhuǎn)化為位圖。)

          同樣有3種導(dǎo)出方式

          # 需運行上面的ggplot2繪圖
          # Create a file name
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2office():
          ### 1. Pass the plot as an object
          # 導(dǎo)出圖形對象
          graph2ppt(x=x, file=filen)
          graph2doc(x=x, file=filen, aspectr=0.5)
          ### 2. Get the plot from current screen device
          # 導(dǎo)出當(dāng)前預(yù)覽窗口呈現(xiàn)的圖
          x
          graph2ppt(file=filen, width=9, aspectr=2, append=TRUE)
          graph2doc(file=filen, aspectr=1.7, append=TRUE)
          ### 3. Pass the plot as a function
          # 導(dǎo)出自定義函數(shù)輸出的一系列圖
          graph2ppt(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          graph2doc(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          

          導(dǎo)出到office(ppt和word)中的圖形,是可編輯的:

          其它導(dǎo)出到ppt的例子(設(shè)置長寬比)

          graph2ppt(file="ggplot2_plot.pptx", aspectr=1.7)
          

          增加第二張同樣的圖,9英寸寬和A4長寬比的幻燈片 (append=T,追加)

          graph2ppt(file="ggplot2_plot.pptx", width=9, aspectr=sqrt(2), append=TRUE)
          

          添加相同圖形的第三張幻燈片,寬度和高度固定

          graph2ppt(file="ggplot2_plot.pptx", width=6, height=5, append=TRUE)
          

          禁用矢量化圖像導(dǎo)出

          graph2ppt(x=x, file=filen, vector.graphic=FALSE, width=9, aspectr=sqrt(2), append=TRUE)
          

          用圖填滿幻燈片

          graph2ppt(x=x, file=filen, margins=0, upscale=TRUE, append=TRUE)
          

          輸出矢量圖

          • graph2svg: 將當(dāng)前的R圖保存為SVG格式
          • graph2pdf: 將當(dāng)前的R圖保存為PDF格式
          • graph2eps: 將當(dāng)前的R圖保存為EPS格式

          函數(shù)參數(shù)解釋

          graph2vector(x=NULL, file="Rplot", fun=NULL, type="SVG",aspectr=NULL,
                  width=NULL, height=NULL, scaling=100,
                  font=ifelse(Sys.info()["sysname"]=="Windows",
                  "Arial","Helvetica")[[1]], bg="white", colormodel="rgb",
                  cairo=TRUE,fallback_resolution=600, ...)
          
          • fallback_resolution: dpi中的分辨率用于柵格化不支持的矢量圖形。
          #需運行上面的ggplot2繪圖
          # Create a file name
          filen <- "output_filename" # or
          # filen <- paste("YOUR_DIR/ggplot")
          # There are 3 ways to use graph2vector():
          ### 1. Pass the plot as an object
          # 導(dǎo)出圖形對象
          graph2svg(x=x, file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          graph2pdf(x=x, file=filen, aspectr=2, font="Arial",
                    height=5,  bg="transparent")
          graph2eps(x=x, file=filen, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          # 導(dǎo)出當(dāng)前預(yù)覽窗口呈現(xiàn)的圖
          ### 2. Get the plot from current screen device
          x
          graph2svg(file=filen, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2pdf(file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          graph2eps(file=filen, aspectr=2, font="Times New Roman",
                    height=5, bg="white")
          # 導(dǎo)出自定義函數(shù)輸出的一系列圖
          ### 3. Pass the plot as a function
          graph2svg(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2pdf(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          graph2eps(file=filen, fun=plot.fun, aspectr=2, font="Arial",
                    height=5, bg="transparent")
          

          轉(zhuǎn)換3D圖形

          rgl2png: 將當(dāng)前的rgl 3D圖形保存為PNG格式。

          rgl2bitmap(file="Rplot", type=c("PNG"))
          
          # Create a file name
          filen <- tempfile("rgl") # or
          # filen <- paste("YOUR_DIR/rgl")
          # Generate a 3D plot using 'rgl'
          x=y=seq(-10, 10, length=20)
          z=outer(x, y, function(x, y) x^2 + y^2)
          rgl::persp3d(x, y, z, col='lightblue')
          # Save the plot as a png
          rgl2png(file=filen)
          # Note that omitting 'file' will save in current directory
          

          生成的3D圖形:

          將生成的3D圖形保存為PNG格式:

          輸出統(tǒng)計結(jié)果到表格 table2spreadsheet

          • table2excel: 導(dǎo)出統(tǒng)計輸出到Microsoft Office Excel/ LibreOffice Calc電子表格中的一個表.
          • table2csv:將統(tǒng)計輸出以CSV格式導(dǎo)出到表中(“,”表示值分隔,“。”表示小數(shù))
          • table2csv2: 將統(tǒng)計輸出以CSV格式導(dǎo)出到表中(“;”表示值分隔,”,”表示小數(shù))
          table2spreadsheet(x=NULL, file="Rtable", type=c("XLS", "CSV",
            "CSV2"), append=FALSE, sheetName="new sheet", digits=2,
            digitspvals=2, trim.pval=TRUE, add.rownames=FALSE, ...)
          
          • sheetName: 一個字符串,給出創(chuàng)建的新工作表的名稱(僅針對type==”XLS”)。它必須是惟一的(不區(qū)分大小寫),不受文件中任何現(xiàn)有工作表名稱的影響。
          • digits:除具有p值的列外,要顯示所有列的有效位數(shù)的數(shù)目。
          • digitspvals:具有p值的列要顯示的有效位數(shù)的數(shù)目。
          # Create a file name
          filen <- "table_aov" # or
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          x=summary(fit)
          # Save ANOVA table as a CSV
          ### Option 1: pass output as object
          # 輸出對象
          table2csv(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          # 屏幕輸出導(dǎo)出到文件
          ### Option 2: get output from console
          summary(fit)
          table2csv(file=filen, digits=2, digitspvals=4, add.rownames=TRUE)
          # Save ANOVA table as an Excel
          # Without formatting of the worksheet
          x
          table2excel(file=filen, sheetName="aov_noformatting", digits=1, digitspvals=3, add.rownames=TRUE)
          # 更多參數(shù)
          # With formatting of the worksheet
          table2excel(x=x,file=filen, sheetName="aov_formated", append=TRUE, add.rownames=TRUE, fontName="Arial", fontSize=14, fontColour=rgb(0.15,0.3,0.75),  border=c("top", "bottom"), fgFill=rgb(0.9,0.9,0.9), halign="center", valign="center", textDecoration="italic")
          

          原始數(shù)據(jù)的表格:

          轉(zhuǎn)換格式之后的,在console中的數(shù)據(jù):


          文件(csv和excel)中表格數(shù)據(jù):

          導(dǎo)出為Word中的表,再也不用復(fù)制粘貼調(diào)格式了 table2office

          table2ppt: 導(dǎo)出統(tǒng)計輸出到Microsoft Office PowerPoint/ LibreOffice Impress演示文稿中的表

          table2doc: 將統(tǒng)計輸出導(dǎo)出到Microsoft Office Word/ LibreOffice Writer文檔中的表

          table2office(x=NULL, file="Rtable", type=c("PPT", "DOC"),
            append=FALSE, digits=2, digitspvals=2, trim.pval=TRUE,
            width=NULL, height=NULL, offx=1, offy=1,
            font=ifelse(Sys.info()["sysname"]=="Windows", "Arial",
            "Helvetica")[[1]], pointsize=12, add.rownames=FALSE)
          
          # Create a file name
          filen <- "table_aov"
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          # Save ANOVA table as a PPT
          ### Option 1: pass output as object
          x=summary(fit)
          table2ppt(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          ### Option 2: get output from console
          summary(fit)
          table2ppt(x=x,file=filen, width=5, font="Times New Roman", pointsize=14, digits=4, digitspvals=1, append=TRUE, add.rownames=TRUE) # append table to previous slide
          # Save ANOVA table as a DOC file
          table2doc(x=x,file=filen, digits=1, digitspvals=3, add.rownames=TRUE)
          summary(fit)
          table2doc(file=filen, width=3.5, font="Times New Roman", pointsize=14,  digits=4, digitspvals=1, append=TRUE, add.rownames=TRUE) # append table at end of document
          

          將表格數(shù)據(jù)導(dǎo)出到ppt和word中:

          table2tex

          table2html: 導(dǎo)出統(tǒng)計輸出到HTML表。

          table2tex(x=NULL, file="Rtable", type="TEX", digits=2,
            digitspvals=2, trim.pval=TRUE, summary=FALSE, standAlone=TRUE,
            add.rownames=FALSE, ...)
          

          summary:是否匯總數(shù)據(jù)文件。

          standAlone:導(dǎo)出的Latex代碼應(yīng)該是獨立可編譯的,還是應(yīng)該粘貼到另一個文檔中。

          add.rownames:是否應(yīng)該將行名添加到表中(在第一列之前插入一列)。

          # Create a file name
          filen <- tempfile(pattern="table_aov") # or
          # filen <- paste("YOUR_DIR/table_aov")
          # Generate ANOVA output
          fit=aov(yield ~ block + N * P + K, data=npk) # 'npk' dataset from base 'datasets'
          x=summary(fit)
          # Export to Latex in standAlone format
          table2tex(x=x,file=filen,add.rownames=TRUE)
          # Export to Latex to paste in tex document
          summary(fit) # get output from the console
          table2tex(file=filen, standAlone=FALSE,add.rownames=TRUE)
          # Export to HTML
          table2html(x=x,file=filen) # or
          summary(fit) # get output from the console
          table2html(file=filen,add.rownames=TRUE)
          

          導(dǎo)出到html或tex中的表格數(shù)據(jù):


          R統(tǒng)計和作圖

          • Graphpad,經(jīng)典繪圖工具初學(xué)初探
          • 維恩(Venn)圖繪制工具大全 (在線+R包)
          • 在R中贊揚下努力工作的你,獎勵一份CheatShet
          • 別人的電子書,你的電子書,都在bookdown
          • R語言 - 入門環(huán)境Rstudio
          • R語言 - 熱圖繪制 (heatmap)
          • R語言 - 基礎(chǔ)概念和矩陣操作
          • R語言 - 熱圖簡化
          • R語言 - 熱圖美化
          • R語言 - 線圖繪制
          • R語言 - 線圖一步法
          • R語言 - 箱線圖(小提琴圖、抖動圖、區(qū)域散點圖)
          • R語言 - 箱線圖一步法
          • R語言 - 火山圖
          • R語言 - 富集分析泡泡圖
          • R語言 - 散點圖繪制
          • R語言 - 韋恩圖
          • R語言 - 柱狀圖
          • R語言 - 圖形設(shè)置中英字體
          • R語言 - 非參數(shù)法生存分析
          • R語言 - 繪制seq logo圖
          • WGCNA分析,簡單全面的最新教程
          • psych +igraph:共表達網(wǎng)絡(luò)構(gòu)建
          • 一文學(xué)會網(wǎng)絡(luò)分析——Co-occurrence網(wǎng)絡(luò)圖在R中的實現(xiàn)
          • 一文看懂PCA主成分分析
          • 富集分析DotPlot,可以服
          • 基因共表達聚類分析和可視化
          • R中1010個熱圖繪制方法
          • 還在用PCA降維?快學(xué)學(xué)大牛最愛的t-SNE算法吧, 附Python/R代碼
          • 一個函數(shù)抓取代謝組學(xué)權(quán)威數(shù)據(jù)庫HMDB的所有表格數(shù)據(jù)
          • 文章用圖的修改和排版
          • network3D: 交互式桑基圖
          • network3D 交互式網(wǎng)絡(luò)生成
          • Seq logo 在線繪制工具——Weblogo
          • 生物AI插圖素材獲取和拼裝指導(dǎo)
          • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)
          • 圖像處理R包magick學(xué)習(xí)筆記
          • SOM基因表達聚類分析初探
          • 利用gganimate可視化全球范圍R-Ladies(R社區(qū)性別多樣性組織)發(fā)展情況
          • 一分鐘繪制磷脂雙分子層:AI零基礎(chǔ)入門和基本圖形繪制
          • AI科研繪圖(二):模式圖的基本畫法
          • 你知道R中的賦值符號箭頭(<-)和等號(=)的區(qū)別嗎?
          • R語言可視化學(xué)習(xí)筆記之ggridges包
          • 利用ComplexHeatmap繪制熱圖(一)
          • ggplot2學(xué)習(xí)筆記之圖形排列
          • R包reshape2,輕松實現(xiàn)長、寬數(shù)據(jù)表格轉(zhuǎn)換
          • 用R在地圖上繪制網(wǎng)絡(luò)圖的三種方法
          • PCA主成分分析實戰(zhàn)和可視化 附R代碼和測試數(shù)據(jù)
          • iTOL快速繪制顏值最高的進化樹!
          • 12個ggplot2擴展包幫你實現(xiàn)更強大的可視化
          • 編程模板-R語言腳本寫作:最簡單的統(tǒng)計與繪圖,包安裝、命令行參數(shù)解析、文件讀取、表格和矢量圖輸出
          • R語言統(tǒng)計入門課程推薦——生物科學(xué)中的數(shù)據(jù)分析Data Analysis for the Life Sciences
          • 數(shù)據(jù)可視化基本套路總結(jié)
          • 你知道R中的賦值符號箭頭<-和等號=的區(qū)別嗎?
          • 使用dplyr進行數(shù)據(jù)操作30例
          • 交集intersect、并集union、找不同setdiff
          • R包reshape2,輕松實現(xiàn)長、寬數(shù)據(jù)表格轉(zhuǎn)換
          • 1數(shù)據(jù)類型(向量、數(shù)組、矩陣、 列表和數(shù)據(jù)框)
          • 2讀寫數(shù)據(jù)所需的主要函數(shù)、與外部環(huán)境交互
          • 3數(shù)據(jù)篩選——提取對象的子集
          • 4向量、矩陣的數(shù)學(xué)運算
          • 5控制結(jié)構(gòu)
          • 6函數(shù)及作用域
          • 7認(rèn)識循環(huán)函數(shù)lapply和sapply
          • 8分解數(shù)據(jù)框split和查看對象str
          • 9模擬—隨機數(shù)、抽樣、線性模型
          • 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ù)
          • 創(chuàng)建屬于自己的調(diào)色板
          • 28個實用繪圖包,總有幾個適合你
          • 熱圖繪制
          • R做線性回歸
          • 繪圖相關(guān)系數(shù)矩陣corrplot
          • 相關(guān)矩陣可視化ggcorrplot
          • 繪制交互式圖形recharts
          • 交互式可視化CanvasXpress
          • 聚類分析factoextra
          • LDA分析、作圖及添加置信-ggord
          • 解決散點圖樣品標(biāo)簽重疊ggrepel
          • 添加P值或顯著性標(biāo)記ggpubr
          • Alpha多樣性稀釋曲線rarefraction curve
          • 堆疊柱狀圖各成分連線畫法:突出組間變化
          • 沖擊圖展示組間時間序列變化ggalluvial
          • 桑基圖riverplot
          • 微生物環(huán)境因子分析ggvegan
          • 五彩進化樹與熱圖更配ggtree
          • 多元回歸樹分析mvpart
          • 隨機森林randomForest 分類Classification 回歸Regression
          • 加權(quán)基因共表達網(wǎng)絡(luò)分析WGCNA
          • circlize包繪制circos-plot
          • R語言搭建炫酷的線上博客系統(tǒng)
          • 28個實用繪圖包,總有幾個適合你
          • 熱圖繪制
          • R做線性回歸
          • 繪圖相關(guān)系數(shù)矩陣corrplot
          • 相關(guān)矩陣可視化ggcorrplot
          • 繪制交互式圖形recharts
          • 交互式可視化CanvasXpress
          • 聚類分析factoextra
          • LDA分析、作圖及添加置信-ggord
          • 解決散點圖樣品標(biāo)簽重疊ggrepel
          • 添加P值或顯著性標(biāo)記ggpubr
          • Alpha多樣性稀釋曲線rarefraction curve
          • 堆疊柱狀圖各成分連線畫法:突出組間變化
          • 沖擊圖展示組間時間序列變化ggalluvial
          • 桑基圖riverplot
          • 微生物環(huán)境因子分析ggvegan
          • 五彩進化樹與熱圖更配ggtree
          • 多元回歸樹分析mvpart
          • 隨機森林randomForest 分類Classification 回歸Regression
          • 加權(quán)基因共表達網(wǎng)絡(luò)分析WGCNA
          • circlize包繪制circos-plot
          • R語言搭建炫酷的線上博客系統(tǒng)
          • 維恩(Venn)圖繪制工具大全 (在線+R包)
          • R包circlize:柱狀圖用膩了?試試好看的弦狀圖
          • 獲取pheatmap聚類后和標(biāo)準(zhǔn)化后的結(jié)果
          • 增強火山圖,要不要試一下?
          • 一個震撼的交互型3D可視化R包 - 可直接轉(zhuǎn)ggplot2圖為3D
          • 贈你一只金色的眼 - 富集分析和表達數(shù)據(jù)可視化
          • 是Excel的圖,不!是R的圖
          • 道友,來Rstudio里面看動畫了
          • 用了這么多年的PCA可視化竟然是錯的!!!

          擊上方關(guān)注,All in AI中國

          我經(jīng)常告訴我的同事和其他程序員一些我在R中使用的簡單的東西,它們可以幫助我完成需要改進的任務(wù)。這些方法從簡單的快捷方式、鮮為人知的函數(shù)到方便的小技巧都有。

          由于R生態(tài)系統(tǒng)如此豐富且不斷增長,人們往往會錯過一些能夠幫助他們完成任務(wù)的事情。所以我經(jīng)常得到一些驚訝的反應(yīng),就像我從來不知道那樣!

          這里有十件讓我的生活更輕松的事情。如果你已經(jīng)全部了解它們,很抱歉浪費你的閱讀時間,請考慮添加一些評論,其中包含你認(rèn)為對其他讀者有益的其他內(nèi)容。

          1. switch函數(shù)

          我喜歡swith()。它基本上是根據(jù)另一個變量的值來選擇其值的if語句的一個方便的縮寫。我發(fā)現(xiàn)當(dāng)我編寫代碼時,根據(jù)您先前的選擇需要加載不同的數(shù)據(jù)集時,它特別有用。例如,如果您有一個名為animal的變量,并且您想要根據(jù)動物是狗、貓還是兔子加載不同的數(shù)據(jù)集,您可以寫下:

          data <- read.csv(
           switch(animal,
           "dog"="dogdata.csv",
           "cat"="catdata.csv",
           "rabbit"="rabbitdata.csv")
          )
          

          這在Shiny應(yīng)用程序中特別有用,您可能希望根據(jù)一個或多個輸入菜單選項加載不同的數(shù)據(jù)集甚至環(huán)境文件。

          2.RStudio快捷鍵

          這不僅僅是一個R技巧,更多是關(guān)于RStudio IDE的更多內(nèi)容,但是可用于常用命令的快捷鍵非常有用,可以節(jié)省大量的輸入時間。我最喜歡的是Ctrl + Shift + M用于管道運算符%>%,用Alt + - 用于賦值運算符< - 。如果你想看到一整套這些很棒的快捷方式,只需在RStudio中鍵入Atl + Shift + K即可。

          3.flexdashboard包

          如果您希望快速啟動Shiny儀表板,并且操作簡單,那么flexdashboard軟件包可以滿足您的一切需求。它提供了簡單的HTML快捷方式,可以輕松構(gòu)建側(cè)邊欄,并將顯示組織成行和列。它還有一個超級靈活的標(biāo)題欄,您可以將應(yīng)用程序組織到不同的頁面,并放入圖標(biāo)和指向Github代碼或電子郵件地址或其他任何內(nèi)容的鏈接。作為在RMarkdown中運行的軟件包,它還允許您將所有應(yīng)用程序保存在一個Rmd文件中,而不是需要將其分解為單獨的服務(wù)器和UI文件,例如shinydashboard。每當(dāng)我需要創(chuàng)建儀表板的簡單原型版本,然后再將其轉(zhuǎn)移到更高級的設(shè)計時,我就會使用flexdashboard。我經(jīng)常可以使用flexdashboard在一小時內(nèi)啟動并運行儀表板。

          4.R Shiny中的req和驗證函數(shù)

          R Shiny開發(fā)可能令人沮喪,特別是當(dāng)您收到通用錯誤消息時,無法幫助您了解底層出現(xiàn)的問題。隨著Shiny的發(fā)展,越來越多的驗證和測試功能被添加,以幫助更好地診斷和警告特定發(fā)生的錯誤。req()函數(shù)允許您阻止操作發(fā)生,除非環(huán)境中存在另一個變量,但是靜默地執(zhí)行操作而不顯示錯誤。因此,您可以使UI元素的顯示以先前的操作為條件。例如,參考我上面的例子1:

          output$go_button <- shiny::renderUI({
           # only display button if an animal input has been chosen
           shiny::req(input$animal)
           # display button
           
           shiny::actionButton("go",
           paste("Conduct", input$animal, "analysis!")
           )
          })
          

          在呈現(xiàn)輸出之前進行validate()檢查,并且如果某個條件未滿足,則允許您返回定制的錯誤消息,例如,如果用戶上載了錯誤的文件:

          # get csv input file
          inFile <- input$file1
          data <- inFile$datapath
          # render table only if it is dogs
          shiny::renderTable({
           # check that it is the dog file, not cats or rabbits
           shiny::validate(
           need("Dog Name" %in% colnames(data)),
           "Dog Name column not found - did you load the right file?"
           )
           data
          })
          

          5.使用系統(tǒng)環(huán)境保留我的所有憑據(jù)

          如果要共享需要登錄憑據(jù)到數(shù)據(jù)庫之類的代碼,則可以使用系統(tǒng)環(huán)境來避免將這些憑據(jù)發(fā)布到Github或其他可能存在風(fēng)險的空間。您可以將憑據(jù)作為命名環(huán)境變量放在R會話中,例如:

          然后在共享腳本中,您可以使用這些環(huán)境變量登錄。例如:

          # get csv input file
          inFile <- input$file1
          data <- inFile$datapath
          # render table only if it is dogs
          shiny::renderTable({
           # check that it is the dog file, not cats or rabbits
           shiny::validate(
           need("Dog Name" %in% colnames(data)),
           "Dog Name column not found - did you load the right file?"
           )
           data
          })
          

          更方便的是,如果你經(jīng)常使用這些憑證,你可以在操作系統(tǒng)中將它們設(shè)置為環(huán)境變量,這樣當(dāng)你在R中工作時它們總是可用,但你不必在你的代碼中顯示它們。

          6.使用styler自動化tidyverse樣式

          您的代碼可能不像您所希望的那樣整潔,您沒有時間對其進行編輯。stylerpackage具有許多功能,允許自動重新編碼代碼以匹配tidyverse風(fēng)格。它非常簡單,就像在你的凌亂腳本上運行styler :: style_file(),它將為你做很多(雖然不是全部)工作。

          7.參數(shù)化R Markdown文檔

          所以你寫了一個可愛的R Markdown文檔,你已經(jīng)分析了很多關(guān)于狗的事實。然后你會被告知 - '不,我對貓更感興趣。如果將R標(biāo)記文檔參數(shù)化,則只需一個命令就可以自動生成關(guān)于貓的類似報告。

          您可以通過在R Markdown文檔的YAML標(biāo)題中定義參數(shù),并為每個參數(shù)賦值來完成此操作。例如:

          現(xiàn)在,您可以將這些變量寫入文檔中的R代碼,如params 和

          years_of_study。如果您正常編織文檔,它將根據(jù)值變量使用這些參數(shù)的默認(rèn)值進行編織。但是,如果您通過在RStudio的Knit下拉列表中選擇此選項來編織參數(shù)(或使用knit_with_parameters()),則會出現(xiàn)一個可愛的菜單選項,您可以在編織文檔之前選擇參數(shù)。

          用參數(shù)編織

          8.revealjs

          revealjs是一個包,它允許您使用帶有嵌入式R代碼的直觀幻燈片導(dǎo)航菜單以HTML格式創(chuàng)建精美的演示文稿。它可以在R Markdown中使用,并且具有非常直觀的HTML快捷方式,允許您使用各種樣式選項創(chuàng)建漂亮幻燈片的嵌套邏輯結(jié)構(gòu)。演示文稿是用HTML表示的,這意味著人們可以通過他們的平板電腦或手機聽你說話,這非常方便。您可以通過安裝包然后在YAML標(biāo)頭中調(diào)用它來設(shè)置revealjspresentation。這是我最近使用revealjs發(fā)表的演講的YAML標(biāo)題示例

          --
          title: "Exporing the Edge of the People Analytics Universe"
          author: "Keith McNulty"
          output:
           revealjs::revealjs_presentation:
           center: yes
           template: starwars.html
           theme: black
          date: "HR Analytics Meetup London - 18 March, 2019"
          resource_files:
          - darth.png
          - deathstar.png
          - hanchewy.png
          - millenium.png
          - r2d2-threepio.png
          - starwars.html
          - starwars.png
          - stormtrooper.png
          ---
          

          這是一個示例頁面。您可以在此處找到代碼和演示文稿hr_meetup_london/presentation.Rmd at master · keithmcnulty/hr_meetup_london · GitHub

          使用revealjs輕松進行在線演示

          9.R Shiny中的HTML標(biāo)簽(例如,在您的Shiny應(yīng)用中播放音頻)

          大多數(shù)人沒有充分利用R Shiny中提供的HTML標(biāo)簽。有110個標(biāo)簽提供各種HTML格式和其他命令的快捷方式。最近我構(gòu)建了一個應(yīng)用程序,花了很長時間來執(zhí)行任務(wù)。知道用戶在等待它完成時可能會出現(xiàn)多任務(wù),我使用標(biāo)簽$ audio讓應(yīng)用程序大肆宣傳,以便在任務(wù)完成時提醒用戶。

          10.贊美包

          這個贊美包非常簡單但也很棒,給用戶帶來了好評。雖然這看起來像是毫無意義的自我欽佩,但它實際上在編寫R包時非常有用,如果他們做正確的事情,例如如果一個過程成功完成,你可以向某人提供贊美或鼓勵。您也可以將它放在復(fù)雜腳本的末尾,以便在成功運行時為您提供額外的快樂。

          最初我是一名純數(shù)學(xué)家,然后我成為了一名心理測量學(xué)家和一名數(shù)據(jù)科學(xué)家。我熱衷于將所有這些學(xué)科的嚴(yán)謹(jǐn)性應(yīng)用于復(fù)雜的人們問題。我也是一名編碼極客,也是日本角色扮演游戲的忠實粉絲。


          主站蜘蛛池模板: 日韩一区二区久久久久久| 国产在线精品一区二区三区直播 | 亚洲AV成人精品日韩一区| 国产精品日本一区二区不卡视频| 国产精品第一区第27页| 一区二区三区精品| 亚州AV综合色区无码一区| 日韩免费视频一区| 亚洲av无码一区二区乱子伦as| 97久久精品无码一区二区| 一区二区不卡久久精品| 国产在线一区二区综合免费视频| 日韩人妻精品一区二区三区视频| 亚洲日本va一区二区三区| 久久久99精品一区二区| 在线播放偷拍一区精品| 在线观看国产一区| 日韩福利视频一区| 精品人伦一区二区三区潘金莲| 精品成人一区二区三区四区| 色一情一乱一区二区三区啪啪高 | 中文字幕日韩欧美一区二区三区| 无码成人一区二区| 国产女人乱人伦精品一区二区| 亚洲成AV人片一区二区密柚| 无遮挡免费一区二区三区| 一区二区三区四区视频在线| chinese国产一区二区| 精品人体无码一区二区三区| 视频在线一区二区| 91精品一区二区| 久久精品一区二区三区资源网| 日韩一区二区在线视频| 精品无人区一区二区三区 | 国产亚洲一区二区手机在线观看| 国产精品美女一区二区三区| 无码人妻一区二区三区兔费 | 欧美av色香蕉一区二区蜜桃小说| 亚洲国产综合精品中文第一区| 激情综合一区二区三区| 久久国产免费一区二区三区|