【万字长文】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包来导入。
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与Shiny
R 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/
往期精品(点击图片直达文字对应教程)
机器学习
后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集
【万字长文】R语言入门学习路线与资源汇总相关推荐
- R语言入门学习——Rstudio的安装与学习
R语言入门学习--Rstudio的安装与学习 1.Rstudio下载 2.Rstudio安装 3.Rstudio功能和简单程序 1.Rstudio下载 下载地址:https://rstudio.com ...
- R语言最佳学习路线和常用数据挖掘包
对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来.当然,这不是最好的学习方式,最好的方式是--看书.目前,市面上介绍R语言的 ...
- R语言入门学习笔记 - 对R软件的认识
一.R软件 1.安装R:自行百度☺ 2.R控制台(R Console)和R程序脚本: 打开R软件,就会直接打开控制台,控制台可以显示程序运行的结果.错误提示等信息,也可以直接输入想要执行的操作并立即返 ...
- 起步HarmonyOS生态的入门学习路线及资源
由于进入到移动应用开发领域,关注到了鸿蒙,接触了HarmonyOS.openHarmony.组织起了一帮子对此感兴趣的大二和大三学生,一起来学习. 昨天做过了宣讲,同学们表现出了很大的热情.为帮助同学 ...
- 《R语言入门与实践》学习笔记四
第四天任务: 完成项目玩扑克牌后1/2,并通过项目学会以下技能: 1)从一个数据集中抽取个别数据值. 2)在一个数据集中改变个别数据的取值. 3)编写逻辑测试程序. 4)使用R的缺失值符号NA. -- ...
- 2021年R语言学习路线以及资源推荐
R语言学习从入门到熟练掌握资源推荐 最近有些小伙伴在后台问我要一些资源,呃,前段时间一直没看到消息,现在统一整理一下,由于微信不让发这个,我就放在公众号里了,在公众号里回复[R语言学习资源]即可,如果 ...
- R语言可视化学习笔记之ggridges包绘制山峦图
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...
- 想学习C语言,学习路线是什么?
不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单.随着应用需求和场景的变化,C语言的语法功能在不断升级变化. C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的 ...
- R语言入门——常用函数50个
R语言函数入门50个基本函数 0引言 1.入门准备操作及函数 1.1R版本介绍以及IDE的选择 1.2IDE及其常用的快捷键 2.空间操作以及纠错函数 2.1 ? .??.help.demo.exam ...
最新文章
- 六轴机器人 宝元系统_庆云大国重器上线六轴智能焊接机器人,锻造高质量发展硬核...
- Linux 内核抓包功能实现基础(五) 常见问题解析
- 连载:阿里巴巴大数据实践—实时技术
- 使用@Async实现异步调用
- Quartz2 定时器 《一》(概述)
- deny后加to do还是doing_become to do还是doing
- ajax成功跨域_自己写的
- grub引导项修复详解_修复grub2双系统引导及顺序
- java 新闻编辑_使用 Java 构建你自己的文本编辑器|Linux 中国
- IntelliJ IDEA15,PhpStorm10,WebStorm11激活破解
- javascript第二天学习
- 彩虹战队waf测试工具(测试数据)
- django下的考勤机管理系统定制实例
- JPG图片转换成Word文字教程分享
- Pytorch-detach()用法
- ctypes 指针类型 byref pointer POINTER
- pands 画图 调整大小_关于数学建模的画图学习建议
- uboot什么意思(uboot fastboot)
- 一名开源工程师的自白
- Open3DCGAL DSM(数字表面模型)
热门文章
- Flink教程(17)- Flink Table与SQL(案例与SQL算子)
- php chrome.crx,从PHP生成Chrome .crx
- 福昕PDF阅读器又更新了,终于等到这个功能了!
- python态密度曲线绘制_使用Multiwfn绘制态密度(DOS)图考察电子结构
- 应变/温度数据采集系统设计方案——德维创(DEWETRON)
- ubuntu20.04爬虫开发环境搭建以及常用软件安装
- 天龙八部基于颜色的简易动作式外挂
- android 盘点软件,安卓还能这么用!盘点那些神奇的安卓App
- 2011国信蓝点杯全国软件设计大赛
- Android自适应大小和屏幕