本篇推文就不介绍为什么需要学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与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语言入门学习路线与资源汇总相关推荐

  1. R语言入门学习——Rstudio的安装与学习

    R语言入门学习--Rstudio的安装与学习 1.Rstudio下载 2.Rstudio安装 3.Rstudio功能和简单程序 1.Rstudio下载 下载地址:https://rstudio.com ...

  2. R语言最佳学习路线和常用数据挖掘包

    对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来.当然,这不是最好的学习方式,最好的方式是--看书.目前,市面上介绍R语言的 ...

  3. R语言入门学习笔记 - 对R软件的认识

    一.R软件 1.安装R:自行百度☺ 2.R控制台(R Console)和R程序脚本: 打开R软件,就会直接打开控制台,控制台可以显示程序运行的结果.错误提示等信息,也可以直接输入想要执行的操作并立即返 ...

  4. 起步HarmonyOS生态的入门学习路线及资源

    由于进入到移动应用开发领域,关注到了鸿蒙,接触了HarmonyOS.openHarmony.组织起了一帮子对此感兴趣的大二和大三学生,一起来学习. 昨天做过了宣讲,同学们表现出了很大的热情.为帮助同学 ...

  5. 《R语言入门与实践》学习笔记四

    第四天任务: 完成项目玩扑克牌后1/2,并通过项目学会以下技能: 1)从一个数据集中抽取个别数据值. 2)在一个数据集中改变个别数据的取值. 3)编写逻辑测试程序. 4)使用R的缺失值符号NA. -- ...

  6. 2021年R语言学习路线以及资源推荐

    R语言学习从入门到熟练掌握资源推荐 最近有些小伙伴在后台问我要一些资源,呃,前段时间一直没看到消息,现在统一整理一下,由于微信不让发这个,我就放在公众号里了,在公众号里回复[R语言学习资源]即可,如果 ...

  7. R语言可视化学习笔记之ggridges包绘制山峦图

    作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...

  8. 想学习C语言,学习路线是什么?

    不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单.随着应用需求和场景的变化,C语言的语法功能在不断升级变化. C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的 ...

  9. R语言入门——常用函数50个

    R语言函数入门50个基本函数 0引言 1.入门准备操作及函数 1.1R版本介绍以及IDE的选择 1.2IDE及其常用的快捷键 2.空间操作以及纠错函数 2.1 ? .??.help.demo.exam ...

最新文章

  1. 六轴机器人 宝元系统_庆云大国重器上线六轴智能焊接机器人,锻造高质量发展硬核...
  2. Linux 内核抓包功能实现基础(五) 常见问题解析
  3. 连载:阿里巴巴大数据实践—实时技术
  4. 使用@Async实现异步调用
  5. Quartz2 定时器 《一》(概述)
  6. deny后加to do还是doing_become to do还是doing
  7. ajax成功跨域_自己写的
  8. grub引导项修复详解_修复grub2双系统引导及顺序
  9. java 新闻编辑_使用 Java 构建你自己的文本编辑器|Linux 中国
  10. IntelliJ IDEA15,PhpStorm10,WebStorm11激活破解
  11. javascript第二天学习
  12. 彩虹战队waf测试工具(测试数据)
  13. django下的考勤机管理系统定制实例
  14. JPG图片转换成Word文字教程分享
  15. Pytorch-detach()用法
  16. ctypes 指针类型 byref pointer POINTER
  17. pands 画图 调整大小_关于数学建模的画图学习建议
  18. uboot什么意思(uboot fastboot)
  19. 一名开源工程师的自白
  20. Open3DCGAL DSM(数字表面模型)

热门文章

  1. Flink教程(17)- Flink Table与SQL(案例与SQL算子)
  2. php chrome.crx,从PHP生成Chrome .crx
  3. 福昕PDF阅读器又更新了,终于等到这个功能了!
  4. python态密度曲线绘制_使用Multiwfn绘制态密度(DOS)图考察电子结构
  5. 应变/温度数据采集系统设计方案——德维创(DEWETRON)
  6. ubuntu20.04爬虫开发环境搭建以及常用软件安装
  7. 天龙八部基于颜色的简易动作式外挂
  8. android 盘点软件,安卓还能这么用!盘点那些神奇的安卓App
  9. 2011国信蓝点杯全国软件设计大赛
  10. Android自适应大小和屏幕