【万字长文】R语言入门学习路线与资源汇总 |
您所在的位置:网站首页 › 如何入门编程语言教程 › 【万字长文】R语言入门学习路线与资源汇总 |
本篇推文就不介绍为什么需要学R了,你能打开这篇文章,说明你有学习R的想法或者正在学习R的路上。 今天简单介绍下R语言的学习路线以及R学习资源汇总。 下面涉及到的R语言书籍我打包了PDF文件,有需要的在本公众号后台回复20210112即可免费获取,整理不易,伸手党勿扰。 1. R基础入门学习R语言的最好方法就是在实践中学习,多多动手,多码代码,这个最重要。 纸上得来终觉浅,绝知此事要躬行。 刚开始学习R语言,可以看一些免费入门视频,可以在B站上面搜,B站有很多免费的R语言入门视频,比如《尚学堂尹鸿的R语言速成实战》[1],这个视频是免费的,视频讲义素材来源于《R语言实战》的第一章到第六章,这几章可以边看书边跟着视频学习,用来简单入门基本够了。 这个为生信学习和生信作图打造的开源R教程真香!!! 另外也可以试试一个离线的交互式学习R包——swirl[2]包,可以在R软件中安装这个包,然后看看这个R包的帮助文档[3]学习下怎么用。 看看这个包的帮助文档[5]学习怎么用。 也可以在datacamp[4]网站中选择它的在线版本进行学习。 如果不想看视频,可以先阅读一些R语言入门的小手册,比如说CRAN[5]上的R介绍小手册,对R语言有一个初步了解。 或者阅读几本不错的R语言入门书籍,比如说《R语言实战》[6]、《R数据科学》[7]等。对于初学者,建议看中文版即可。另外李东风老师的《R语言教程》、王敏杰老师的《数据科学中的R语言》以及张敬信老师的《R语言编程:基于tidyverse》也很不错,极力推荐,并且这三本书也开源。 英语不错的可以直接看英文原版,比如说《R for Data Science》[8],英文原版有时候更容易理解,有的中文版直译后没有那种味道了,并且英文版知识更新速度更快。 2. 安装R和RStudio可以从R官网[9]中下载和安装R软件,安装不复杂,要是实在不会,就网上百度一下,有很多教程。 安装好R后,可以选择一个R集成开发环境(IDE),这里强烈推荐安装RStudio[10],RStudio是目前最受欢迎的R集成开发环境,体验效果极佳。 并且RStudio上也提供了很多R学习资源,可以点击菜单栏查看免费获取。 R语言学习 - 入门环境Rstudio 3. 安装R包R包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。 在安装R软件时,R会自动安装一些基础R包[11],这些基础包提供了种类繁多的默认函数和数据集,其他大多数R包都需要自己手动安装,比如说ggplot2[12]包、tidyverse[13]包。 安装R包主要有三条途径。 3.1 CRAN大多数R包都可以从CRAN上安装,只需要在命令行中直接输入代码install.packages("R包名")即可自动安装,建议在Rstudio中将镜像地址改为离你最近的地址。 在CRAN上,R官方专门维护了41个Task Views[14],专门将一些功能相近、同一领域的包罗列在一起,比如说Survival[15]系列,从这里你可以快速找到你需要的一组R包。 3.2 bioconductor除了CRAN,还可以从bioconductor[16]上安装R包,这个数据库专门存储一些生物信息学领域的R包。 Bioconductor上的R包安装可以参考官方网站的安装方法[17],与CRAN类似。 install.packages("BiocManager") BiocManager::install(c("GenomicFeatures", "AnnotationDbi")) 3.3 github另外还可以从github[18]上安装R包,有的R包作者没有将自己的代码上传到以上平台,选择存储在github上,我们可以使用devtools[19]包从github上安装R包。 对于github上的R包,可以在github上面检索这个R包,找到这个包的官方地址,一般R包作者会在里面说明安装方式,比如说ggExtra[20]包。 install.packages("devtools") devtools::install_github("daattali/ggExtra") 3.4 本地安装如果存在一些怪里怪气的R包,你上面三种方式都安装不了,可以考虑使用本地离线安装,先下载到这个R包的压缩包,再在RStudio中安装,R包的压缩包可以在上面三个平台找。 如果这些方式都安装不了,那大概率说明这个包存在问题。 3.5 查找需要R包R包目前有1万多个,想要快速查找一个自己需要的包有时比较麻烦,我们可以使用Rdocumentation[21]、inside-R[22]等网站从CRAN、github和bioconductor上快速查找需要的R包。 4. R与数据导入R支持各种数据格式的导入,如下图,R可从键盘、文本、Excel和Access、统计软件、特殊格式文件、数据库管理系统、专业数据库、网站和在线服务中导入数据。 来自《R语言实战》不同的数据格式,需要不同的R包来导入。 4.1 文本文件文本格式文件可以使用utils包的read.table()[23]函数和read.csv()[24]函数导入,还有readr[25]包和data.table包的fread()[26]函数也可以快速导入数据。 4.2 Excel文件如果是Excel格式文件,可以使用readxl[27]包导入,另外gdata[28]包和XLConnect[29]包也可以导入Excel数据。更多Excel文件导入到R中可以参考《Reading and Importing Excel Files into R》[30]这篇文章。 4.3 SAS、STATA和SPSS文件SAS、STATA和SPSS软件生成的三类数据格式文件可以使用Hadley的haven[31]包导入,也可以使用foreign[32]包导入,foreign包不但可以导入这三个数据格式文件,还可以导入其他格式文件,比如Systat和Weka格式,同时也可以再次将数据以各种格式从R中导出。 4.4 数据库文件如果需要导入数据库中的数据文件,不同的数据库所要求的包不同,比如说MySQL数据库,可以使用MySQL[33]包读取,RpostgreSQL[34]包和ROracle[35]包也可以。 另外也可以使用DBI[36]包中的函数去指定获取不同的数据库数据。 4.5 网络数据如果是想使用R来获取网络上的数据,可以使用API或者rvest[37]包来抓取数据。网络数据获取入门可以查看Rolf Fredheim的博客[38],这里有很多资源可以获取。 5. R与数据处理大多数直接导入R中的数据是不能直接用来统计分析和绘图的,需要进行一定的数据处理。 将"脏"数据清洗成"干净"数据对于后续的统计分析和数据可视化非常重要。 R语言内置了很多基础函数来处理数据,但是这些函数数据处理效率一般般,并且也不是那么好用,这里推荐一些不错的数据处理R包和函数。 5.1 tidyr包tidyr[39]包可以用来整理数据,一个好的数据集应该是一行代表一个观测对象,一列代表一个变量,这样的数据集才方便我们使用。要了解有关tidyr包的更多信息,可以查看tidyr包的帮助文件[40]。 5.2 stringr包如果数据集中需要进行字符串操作,可以使用stringr[41]包,可以学习这个stringr包的帮助文件[42],这里面包含许多有用的示例帮助快速入门。 5.3 dplyr包dplyr包是专门用于数据分析的一个R包,也是tidyverse数据科学系列包中的核心R包,在进行常用的数据分析操作时,比如说行筛选、行排列、选择列、创建列等操作,可以优先使用dplyr包,简单、方便、效率高。要了解有关dplyr包的更多信息,可以学习RStudio上的这个小手册[43]。 5.4 data.table包当数据集数据量非常大时,可以使用data.table[44]包。要了解更多data.table包的信息,可以学习包的帮助文件[45],也可以阅读黄天元的《R语言数据高效处理指南》[46],这本书专门介绍了R语言中的数据处理,作者也公开了书籍中的源代码[47]。 5.5 lubridate包如果需要处理日期时间类型数据,可以使用lubridate[48]包。要了解有关lubridate包的更多信息,可以学习包的帮助文件[49] 5.6 zoo、xts和quantmod包基础包处理时间序列数据的能力有限,可以使用zoo[50]、xts[51]和quantmod[52]包来处理,也可以学习Springer出版的《Time Series Analysis and Its Applications》[53]。 如果想全面学习R的高效数据处理,可以阅读《R数据科学》、《Data Manipulation with R》[54]或《Data Wrangling with R》[55]这几本书,也可以学习RStudio出的《Data Wrangling with R》[56]视频。如果您在处理数据时遇到问题,可以查看这15种解决方案[57],也许就能帮到你。 6. 数据可视化R语言最出色的功能之一就是数据可视化啦。 6.1 ggplot2包ggplot2包是目前最受欢迎的可视化R包,你可以在ggplot2官网[58]学习怎么使用ggplot2包,也可以查看RStudio出品的cheatsheet手册[59]或者阅读这本即将出版的《ggplot2: Elegant Graphics for Data Analysis》[60],当然《R数据可视化手册》[61]也是一本绝佳的可视化学习书籍。 6.2 交互式绘图包除了ggplot2包外,学习一些交互式R包也是很有必要的,比如ggvis[62]、googleVis[63]、Plotly[64]。 另外可以在这个task view[65]上查看其他的数据可视化R包。 如果绘图时存在问题,可以查看这篇博客文章[66],也许可以帮到你。 6.3 空间地理图形在R的task view中,有专门的主题用来处理空间数据[67],教你绘制漂亮的地理图形。 首先可以学习下ggmap[68]包中的示例,这个包可以让你在静态地图上显示来自Google地图和开放式街道地图等来源的空间数据和模型。另外还可以学习下maptools[69]包、choroplethr[70]包和tmap[71]包。 如果你需要一些更详细的教程,可以查看这篇帮助文档[72]以及一些R可视化的博客,如FlowingData[73]。 6.4 可视化小工具目前R中最新的可视化小工具是HTML widgets[74],HTML widgets的工作方式与R相同,但它创建了交互式Web可视化效果,如动态地图 (leaflet[75])、时间序列数据图表(dygraphs[76])和交互式表(DataTables[77])。有一些非常不错的HTML widgets示例[78],以及如何创建自己的HTML widgets的文档[79],有兴趣的可以查看阅读。 6.5 配色方案R语言绘制出来的图形色彩优美,除了R本身的功劳外,也得益于一些出色的配色R包,比如说RColorBrewer[80]包和ggsci[81]包,还有一些主题包也不错,比如说ggthemr[82]包、tvthemes[83]。 6.6 图形排版图形排版是可视化好图形后遗留的一个小问题了,R中可以进行排版的包有好几个。 patchwork[84]包应该是最赞的一个排版包了,这个包排版自定义程度很高,能满足各种排版需要。还有一些包排版也不错,比如说cowplot[85]、Rmisc[86]、ggpubr[87]。 7. 机器学习机器学习一些常用的包有caret[88]、rpart[89]和randomForest[90],这些包也有一些不错的学习资源。如果只是入门学习,可以看看这本指导手册[91],也许会有帮助。 另外,也可以读读《Mastering Machine Learning with R》[92]和《Machine Learning with R》[93]、《Practical Data Science With R》[94]、《A Survival Guide to Data Science with R》[95]这几本书。 如果你需要一些手把手的教程,可以看看Kaggle机器学习课程[96]和Wiekvoet的博客[97]。 8. RMarkdown与ShinyR Markdown为数据科学提供了一种统一的写作框架,可以集成代码、输出结果和文本注释。R Markdown文档是完全可重用的,并支持多种输出形式,包括PDF、Word、幻灯片等。 R Markdown常见的学习资料包括R Markdown速查表、R Markdown用户指南,在RStudio中可以找到。 除了R markdown,还可以学习下Shiny[98]。Shiny让R构建交互式Web应用程序变得很简单,我们可以将分析变成交互式Web应用程序,而不需要了解HTML、CSS或Javascript等。 RStudio是一个很棒的R学习网站,上面有很多很棒的的Shiny学习资源[99],可帮助快速入门Shiny,包括一些视频教程合集[100]以及一些高级主题和大量示例[101]。 翻译自一篇博客,具体链接点击阅读原文。 参考资料[1] R语言速成实战: https://www.bilibili.com/video/BV1tW411x7rW?p=1 [2]swirl: https://swirlstats.com/ [3]swirl文档: https://swirlstats.com/students.html [4]datacamp: https://www.datacamp.com/courses/r-programming-with-swirl [5]CRAN: https://cran.r-project.org/ [6]R语言实战: https://book.douban.com/subject/26785199/ [7]R数据科学: https://book.douban.com/subject/30277904/ [8]R for Data Science: https://r4ds.had.co.nz/index.html [9]R: https://cran.r-project.org/index.html [10]RStudio: https://rstudio.com/ [11]Base Package: https://www.rdocumentation.org/packages/base/versions/3.6.2 [12]ggplot2: https://github.com/tidyverse/ggplot2/ [13]tidyverse: https://www.tidyverse.org/ [14]Task Views: https://cran.r-project.org/ [15]Survival topic: https://cran.r-project.org/web/views/Survival.html [16]bioconductor: https://bioconductor.org/ [17]Install Bioconductor Packages: https://bioconductor.org/install/#install-bioconductor-packages [18]github: https://github.com/ [19]devtools: https://cran.r-project.org/web/packages/devtools/index.html [20]ggExtra: https://github.com/daattali/ggExtra [21]Rdocumentation: https://www.rdocumentation.org/ [22]MRAN: https://mran.microsoft.com/ [23]read.table: https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/read.table [24]read.csv: https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/read.table [25]readr: https://github.com/tidyverse/readr [26]fread: https://www.rdocumentation.org/packages/data.table/versions/1.13.6/topics/fread [27]readxl: https://github.com/tidyverse/readxl [28]gdata: https://cran.r-project.org/web/packages/gdata/ [29]XLConnect: https://cran.r-project.org/web/packages/XLConnect/ [30]Reading and Importing Excel Files into R: https://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r [31]haven: https://github.com/tidyverse/haven [32]foreign: https://cran.r-project.org/web/packages/foreign/index.html [33]MySQL: https://cran.r-project.org/web/packages/RMySQL/ [34]RpostgreSQL: https://cran.r-project.org/web/packages/RPostgreSQL [35]ROracle: https://cran.r-project.org/web/packages/ROracle/index.html [36]DBI: https://cran.r-project.org/web/packages/DBI [37]rvest: https://cran.r-project.org/web/packages/rvest/ [38]Rolf Fredheim: http://blog.rolffredheim.com/2014/02/web-scraping-basics.html [39]tidyr: https://cran.r-project.org/web/packages/tidyr/ [40]tidy-data: https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html [41]stringr: https://cran.r-project.org/web/packages/stringr [42]stringr vignette: https://cran.r-project.org/web/packages/stringr/stringr.pdf [43]dplyr cheatsheet: https://rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf [44]data.table: https://cran.r-project.org/web/packages/data.table/ [45]data.table 介绍: https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.html [46]R语言数据高效处理指南: https://zhuanlan.zhihu.com/p/82480894 [47]书籍源代码: 后台回复20210112即可获取 [48]lubridate: https://cran.r-project.org/web/packages/lubridate/ [49]lubridate vignettes: https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html [50]zoo: https://cran.r-project.org/web/packages/zoo [51]xts: https://cran.r-project.org/web/packages/xts [52]quantmod: https://cran.r-project.org/web/packages/quantmod [53]时间序列分析及应用: https://www.springer.com/gp/book/9783319524511 [54]Data Manipulation with R: https://www.springer.com/gp/book/9780387747309 [55]Data Wrangling with R: https://www.springer.com/gp/book/9783319455983 [56]Data Wrangling with R: https://rstudio.com/resources/webinars/data-wrangling-with-r-and-rstudio/ [57]15 solutions: https://www.datacamp.com/community/tutorials/15-easy-solutions-data-frame-problems-r [58]ggplot2官网: http://ggplot2.org/ [59]ggplot2 cheatsheet: https://rstudio.com/resources/cheatsheets/ [60]ggplot2-book: https://ggplot2-book.org/ [61]R Graphics Cookbook: https://book.douban.com/subject/25873705/ [62]ggvis: https://ggvis.rstudio.com/ [63]googleVis: https://github.com/mages/googleVis [64]Plotly: https://plotly.com/r/ [65]Graphics view: https://cran.r-project.org/web/views/Graphics.html [66]R绘图的15个常见问题: https://www.datacamp.com/community/tutorials/15-questions-about-r-plots [67]空间数据: https://cran.r-project.org/web/views/Spatial.html [68]ggmap: https://cran.r-project.org/web/packages/ggmap/index.html [69]maptools: http://maptools.r-forge.r-project.org/ [70]choroplethr: https://cran.r-project.org/web/packages/choroplethr/index.html [71]tmap: https://github.com/mtennekes/tmap [72]空间数据可视化文档: 后台回复20210112即可获取 [73]FlowingData: https://flowingdata.com/ [74]HTML widgets: http://www.htmlwidgets.org/ [75]leaflet: https://rstudio.github.io/leaflet/ [76]dygraphs: https://rstudio.github.io/dygraphs/ [77]DataTables: https://rstudio.github.io/DT/ [78]showcase: http://www.htmlwidgets.org/showcase_leaflet.html [79]documentation: http://www.htmlwidgets.org/develop_intro.html [80]RColorBrewer: https://cran.r-project.org/web/packages/RColorBrewer/ [81]ggsci: https://github.com/nanxstats/ggsci [82]ggthemr: https://github.com/Mikata-Project/ggthemr [83]tvthemes: https://github.com/Ryo-N7/tvthemes [84]patchwork: https://patchwork.data-imaginist.com/index.html [85]cowplot: https://github.com/wilkelab/cowplot [86]Rmisc: https://cran.r-project.org/package=Rmisc [87]ggpubr: https://github.com/kassambara/ggpubr [88]caret: https://cran.r-project.org/web/packages/caret/ [89]rpart: https://cran.r-project.org/web/packages/rpart/ [90]randomForest: https://cran.r-project.org/web/packages/randomForest/ [91]机器学习指导手册: https://machinelearningmastery.com/ [92]Mastering Machine Learning with R: https://www.oreilly.com/library/view/mastering-machine-learning/9781789618006/ [93]Machine Learning with R: https://www.oreilly.com/library/view/machine-learning-with/9781617296574/ [94]Practical Data Science with R: https://www.manning.com/books/practical-data-science-with-r [95]A Survival Guide to Data Science with R: https://togaware.com/onepager/ [96]Kaggle Machine Learning course: https://www.datacamp.com/courses/kaggle-tutorial-on-machine-learing-the-sinking-of-the-titanic?tap_a=5644-dce66f&tap_s=10907-287229 [97]Wiekvoet博客: https://wiekvoet.blogspot.be/ [98]Shiny: https://shiny.rstudio.com/ [99]Shiny资源: https://shiny.rstudio.com/tutorial/ [100]Shiny视频: https://shiny.rstudio.com/articles/ [101]Shiny示例: https://shiny.rstudio.com/gallery/ 往期精品(点击图片直达文字对应教程)机器学习 后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |