Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 欧美激情一区二区亚洲专区,免费在线观看你懂的,亚洲系列中文字幕一区二区

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

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

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

          者:NSS

          翻譯:楊金鴻

          術語校對:韓海疇

          全文校對:林亦霖

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

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

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

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

          R語言學習方法會幫助您快速、高效學習R語言。

          前言

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

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

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

          步驟一:配置計算機環境

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

          您可能會考慮使用R語言自帶的控制臺,但我們建議您安裝R語言集成開發環境(IDE)。RStudio(https://www.rstudio.com/)是最有名的IDE,它能讓R語言編碼更容易、更快,還能讓您輸入多行代碼、處理圖形、安裝和維護程序,有效引導您的編程環境。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)。

          課后作業

          • 安裝R和RStudio。

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

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

          步驟二:R語言基礎學習

          您應該首先了解語言、庫和數據結構基礎知識。

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

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

          除了上述在線資源,您還可以考慮以下優秀資源:

          • CRAN免費教學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/)

          專門學習:閱讀、數據幀、表、概述、描述、加載和安裝包、使用繪圖命令可視化數據。

          課后作業

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

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

          • 通過google幫助,解決安裝過程中出現的問題。

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

          步驟三:了解R社

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

          課后作業:

          • 訪問CranTask Views了解R語言生態系統。

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

          步驟四:數據導入和操作

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

          • readr:導入平面文件。

          • Readxl package:將excel文件轉化為R語言。

          • haven package包:讓您將SAS、STATA和SPSS數據文件導入R語言。

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

          • rvest: 網頁數據抓取。

          一旦數據在工作環境中可用,您就可以使用下面程序包操作:

          • 整理數據的tidyr程序包。

          • stringr包處理字符串操作。

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

          • 需要執行繁重數據爭用任務?試試data.table程序包。

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

          課后作業

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

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

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

          步驟五:有效數據可視化

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

          1. 平面圖無處不在

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

          • 在R語言中學習基本圖形語法是數據可視化中一種實用方法。

          • 在R語言中ggplot是數據可視化中最重要的包,并且很受歡迎,網上有很多它的學習資源,比如在線ggplot2教程,cheatsheet ,和以及一本由哈德利韋翰編寫的教學書。

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

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

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

          2. 地圖無處不在

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

          • 源自Google maps和ggmap開放街道的靜態圖片,可用來創建可視化空間數據和模型。

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

          • tmap 程序包

          3. HTML插件

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

          • leaflet創建動態圖片。

          • 使用dygraphs生成時間序列數據圖表。

          • 互動表(datatable)。

          • DiagrammeR創建圖和流程圖。

          • MetricsGraphics創建散點圖、線圖和直方圖。

          課后作業

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

          • 學習ggplot2教程。

          • 使用RStudio環境學習html插件。

          步驟六:數據挖掘、機器學習

          對于新的統計數據學習方法,我們推薦下列資源:

          • Andrew Conway’s課程:R語言統計數據簡介。

          • 杜克大學數據分析和統計推斷。

          • R語言實用數據科學。

          • 約翰霍普金斯大學數據科學專業課程。

          • R語言數據科學使用指南。

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

          • 機器學習算法要點。

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

          • Kaggle上的機器學習課程。

          • 掌握機器學習。

          • 介紹機器學習。

          確保在相關的CRAN任務視圖中查看到R語言可用的機器學習資源。

          課后作業

          • 從統計學課程開始入門。

          • 學習Kaggle上免費機器學習課程。

          • 看Rattle中的一些R語言數據挖掘書。

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

          步驟七:報告結果

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

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

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

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

          課后作業

          • 使用RMarkdown或ReporteRs創建第一個交互式報告。

          • 嘗試構建一個Shiny應用。

          練習

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

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

          步驟八:時間序列分析

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

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

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

          課后作業

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

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

          • 使用諸如dygraphs的程序包創建您的可視化時間序列數據和分析。

          文本挖掘一個重要工具

          學習文本挖掘,您可以從edge課程中學習。雖然課程已經結束,但是您仍然可以訪問這些課程。

          練習

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

          步驟九:成為R語言大師

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

          • 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/

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

          能轉換:R圖和統計表轉成發表級的Word、PPT、Excel、HTML、Latex、矢量圖等

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

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


          特點

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

          安裝

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

          官方CRAN發布 (以不能用)

          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")
          


          該包主要包括以下幾種轉換

          • graph2bitmap
          • graph2office
          • graph2vector
          • rgl2bitmap 轉換3D圖
          • table2office
          • table2spreadsheet
          • table2tex
          • graph2bitmap: 將當前R圖保存到bmp文件中
          • graph2png: 將當前R圖保存到png文件中
          • graph2tif: 將當前R圖保存到TIF文件中
          • graph2jpg: 將當前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: 期望縱橫比。如果設置為空,則使用圖形設備的縱橫比。
          • width: 所需寬度(英寸);可以與期望的縱橫比aspectr組合。
          • height: 所需高度(英寸);可以與期望的縱橫比aspectr組合。
          • scaling: 按一定比例縮放寬度和高度。
          • font: PNG和TIFF輸出中標簽所需的字體; Windows系統默認為Arial,其他系統默認為Helvetica。
          • bg: 所需的背景顏色,例如“白色”或“透明”。
          • cairo: 邏輯,指定是否使用Cairographics導出。
          • tiffcompression: 用于TIF文件的壓縮。
          • jpegquality: JPEG壓縮的質量。

          準備開始

          安裝完 export包后,先調用該包

          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()的意思是快速作圖,利用它可以很方便的創建各種復雜的圖形,其他系統需要好幾行代碼才能解決的問題,用qplot只需要一行就能完成。

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

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

          在console里展示數據圖 (長寬比自己調節):

          導出圖形對象

          # 需運行上面的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)
          

          導出當前繪圖窗口展示的圖

          ### 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)
          

          導出自定義函數輸出的一組圖

          ### 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)
          

          轉換后的圖形:

          與Office系列的交互

          大部分圖的細節修改都是用代碼完成的,不需要后續的修飾;但如果某一些修改比較特異,不具有程序的通用性特征,或實現起來比較困難,就可以考慮后期修改。比如用AI文章用圖的修改和排版。熟悉PPT的,也可以用PPT,這時R的圖導出PPT,就要用到graph2office系列函數了。

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

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

          函數參數展示和解釋

          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: 預設留白邊距向量。
          • paper: 紙張尺寸——“A5”至“A1”用于Powerpoint導出,或“A5”至“A3”用于Word輸出;默認“auto”自動選擇適合您的圖形的紙張大小。如果圖太大,無法在給定的紙張大小上顯示,則按比例縮小。
          • orient: 所需的紙張方向-“自動”,“縱向”或“橫向”; Word輸出默認為“自動”,Powerpoint默認為“橫向”。
          • vector.graphic: 指定是否以可編輯的向量DrawingML格式輸出。默認值為TRUE,在這種情況下,編輯Powerpoint或Word中的圖形時,可以先對圖形元素進行分組。如果設置為FALSE,則將該圖以300 dpi的分辨率柵格化為PNG位圖格式。(柵(shān)格化,是PS中的一個專業術語,柵格即像素,柵格化即將矢量圖形轉化為位圖。)

          同樣有3種導出方式

          # 需運行上面的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
          # 導出圖形對象
          graph2ppt(x=x, file=filen)
          graph2doc(x=x, file=filen, aspectr=0.5)
          ### 2. Get the plot from current screen device
          # 導出當前預覽窗口呈現的圖
          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
          # 導出自定義函數輸出的一系列圖
          graph2ppt(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          graph2doc(fun=plot.fun, file=filen, aspectr=0.5, append=TRUE)
          

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

          其它導出到ppt的例子(設置長寬比)

          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)
          

          禁用矢量化圖像導出

          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: 將當前的R圖保存為SVG格式
          • graph2pdf: 將當前的R圖保存為PDF格式
          • graph2eps: 將當前的R圖保存為EPS格式

          函數參數解釋

          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
          # 導出圖形對象
          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")
          # 導出當前預覽窗口呈現的圖
          ### 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")
          # 導出自定義函數輸出的一系列圖
          ### 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")
          

          轉換3D圖形

          rgl2png: 將當前的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格式:

          輸出統計結果到表格 table2spreadsheet

          • table2excel: 導出統計輸出到Microsoft Office Excel/ LibreOffice Calc電子表格中的一個表.
          • table2csv:將統計輸出以CSV格式導出到表中(“,”表示值分隔,“。”表示小數)
          • table2csv2: 將統計輸出以CSV格式導出到表中(“;”表示值分隔,”,”表示小數)
          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: 一個字符串,給出創建的新工作表的名稱(僅針對type==”XLS”)。它必須是惟一的(不區分大小寫),不受文件中任何現有工作表名稱的影響。
          • digits:除具有p值的列外,要顯示所有列的有效位數的數目。
          • digitspvals:具有p值的列要顯示的有效位數的數目。
          # 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)
          # 屏幕輸出導出到文件
          ### 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)
          # 更多參數
          # 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")
          

          原始數據的表格:

          轉換格式之后的,在console中的數據:


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

          導出為Word中的表,再也不用復制粘貼調格式了 table2office

          table2ppt: 導出統計輸出到Microsoft Office PowerPoint/ LibreOffice Impress演示文稿中的表

          table2doc: 將統計輸出導出到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
          

          將表格數據導出到ppt和word中:

          table2tex

          table2html: 導出統計輸出到HTML表。

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

          summary:是否匯總數據文件。

          standAlone:導出的Latex代碼應該是獨立可編譯的,還是應該粘貼到另一個文檔中。

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

          # 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)
          

          導出到html或tex中的表格數據:


          R統計和作圖

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

          擊上方關注,All in AI中國

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

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

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

          1. switch函數

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

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

          這在Shiny應用程序中特別有用,您可能希望根據一個或多個輸入菜單選項加載不同的數據集甚至環境文件。

          2.RStudio快捷鍵

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

          3.flexdashboard包

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

          4.R Shiny中的req和驗證函數

          R Shiny開發可能令人沮喪,特別是當您收到通用錯誤消息時,無法幫助您了解底層出現的問題。隨著Shiny的發展,越來越多的驗證和測試功能被添加,以幫助更好地診斷和警告特定發生的錯誤。req()函數允許您阻止操作發生,除非環境中存在另一個變量,但是靜默地執行操作而不顯示錯誤。因此,您可以使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!")
           )
          })
          

          在呈現輸出之前進行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.使用系統環境保留我的所有憑據

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

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

          # 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
          })
          

          更方便的是,如果你經常使用這些憑證,你可以在操作系統中將它們設置為環境變量,這樣當你在R中工作時它們總是可用,但你不必在你的代碼中顯示它們。

          6.使用styler自動化tidyverse樣式

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

          7.參數化R Markdown文檔

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

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

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

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

          用參數編織

          8.revealjs

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

          --
          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標簽(例如,在您的Shiny應用中播放音頻)

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

          10.贊美包

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

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


          主站蜘蛛池模板: 色视频综合无码一区二区三区| 无码人妻久久一区二区三区| 国产成人AV一区二区三区无码| 精品国产一区二区三区久久影院 | 日亚毛片免费乱码不卡一区| 精品国产乱子伦一区二区三区| 成人免费一区二区三区| 麻豆一区二区免费播放网站| 秋霞午夜一区二区| 在线视频一区二区三区三区不卡| 国产激情一区二区三区四区 | 亚洲第一区在线观看| 亚洲av永久无码一区二区三区| 88国产精品视频一区二区三区| 久久精品国产一区| 相泽亚洲一区中文字幕| 精品在线一区二区| 韩国女主播一区二区| 国模无码视频一区二区三区| 精品少妇人妻AV一区二区| 伊人久久大香线蕉AV一区二区| 国产精品一区二区毛卡片 | 久久国产午夜精品一区二区三区| 国产成人精品视频一区二区不卡| 亚洲精品国产suv一区88| 日日摸夜夜添一区| 精品久久一区二区| 国产一区二区三区在线免费观看 | 午夜爽爽性刺激一区二区视频| 无码精品黑人一区二区三区| 肥臀熟女一区二区三区| 无码人妻AⅤ一区二区三区| 日本视频一区在线观看免费| 精品无码一区二区三区亚洲桃色| 日韩精品乱码AV一区二区| 影音先锋中文无码一区| 国产精品无码一区二区三区毛片| 国产伦精品一区二区三区无广告 | 久久综合精品不卡一区二区| 精品无码一区在线观看| 日韩人妻无码免费视频一区二区三区|