R语言学习 - rusher321/rusher321.github.io GitHub Wiki
最近焕姿同学想学习R,正好有时间也可以反思下自己的R学习,同时整理一些R学习的资料供以后学习。最早知道R是在14年,大姐姐教我用R画云图,学了点R的基础,真正开始用是在来了华大后,印象比较深的pengye小朋友发的算相关性的脚本(以前只知道在老版本的R控制器敲敲,完全不知道脚本的这种实现),后来就开始根据大家日常的工作代码(主要是hailiang的)来深入学习(其实也没多深入,只要正常运行就好)。中间陆陆续续买了有关R的书(现在竟然一本都不在我身边,都被借走了!!!),《R语言实战》,《ggplot2:数据分析与图形艺术》,《复杂数据统计方法》等。不过大部分细节知识还是通过博客学习。目前自己大概可以做到对大多数文章用到的统计方法的R实现,整理了一两个R包,但不是特别清楚R的底层逻辑,不熟悉R类的使用和书写。然后在这个基础上结合自己在网上找到的一些资料来聊聊R的学习和在生信上的使用。
对于我自己来说,以前开始学习R的出发点是为了完成一些数据产出后的统计分析,之所以用R是因为周围的同事在用,算是一种资源的易得性。如果现在的我反思或者有一个新人要学习R,我觉得我现在对于这个问题的回答是我们日常的工作诉求是完成定量数据产出后的数据描述展示和基于科学假设出发的统计分析,R在其中的必要性是其在统计(大量的R统计包)和可视化(主要是ggplot2的强大)的优势。当然我也相信Python在这两方面会越来越好,而且其对机器学习和深度学习深度支持也是R比不上的,但是R还是可以很好完成我们在科研工作的绝大部分的工作要求。(Note:要清楚学习R的同时也是学习统计的过程,不然不如学学Python).
我自己一直推崇快速掌握必须的核心的知识,然后马上投入生产,而不是死磕基础(低效且无用,就像本科和硕士对语言的学习)。我不是否认基础,而是相信程序语言的基础的构建一定是在自己大量的试错和实践并通过自己的知识架构去内在消化的。所以从我自己的角度出发,要掌握完成日常生信工作的必需知识主要分3部分。1. 在极短的时间内看完任何一本市面上流行的R入门书籍,了解R为什么叫R,R是主要用做什么的,R的工作环境是什么(能自己配置就自己配置,自己配置一次不成功的就求助,网络视频教程,同事,whatever, 反正在最短时间内搞好就可以),至于数据结构,逻辑判断看看就好,知道R里还是有这些东西的。2. 在我们对自己目的认识清楚后,在R中主要可以将我们的目的分成如下几步:R数据读取,数据操作(清洗,过滤,转置等等),统计,绘图,结果输出。第二部分最好在实际的工作结合各种Google和网上资源一点点实践,也可以结合同事给的例子一行行敲打。3,常用和宏基因组分析相关的R包。
流程化部分:到了这个阶段的时候,一般是我们可以一行行去敲代码,基本完成特定任务下某项工作,如果批量要做的时候通常考虑一个循环,但是R的循环是很低效的。所以这时就要学习怎么写R函数并打包和如何在linux环境写运行R脚本。展示和分享你的工作:这部分需要学习Rmarkdown和Github。
说到底到了这部分其实已经摆脱了我们的日常工作需求,可以根据自己所学结合前人基础的R再创造。这部分要想做的好,就需要深入认识R和R函数编程的内在逻辑。
关于如何学习R
R学习资源
入门
- 一个2小时的入门教程
- <<R语言实战>> # R和统计结合一起学习,工具书
- Apply 函数族 # 15年的锁哥说掌握了apply就是入门R的标志
- <ggplot2:数据分析与图形艺术> # 工具书
- Cookbook for R # 适合入门学习
- Swirl:交互式学习R包
- 北大的R课程
进阶
- <<复杂数据统计基于R>> # 实战的的进阶版本
- <<R语言数据操作>> # 待看
- <<高级R语言编程指南>> # 待看
宏基因组相关的R包
- 宏基因相关分析包合辑 # 竟然也收录我写R包
- Phyloseq Import, share, and analyze microbiome census data using R
- DESeq2 Differential expression analysis for sequence count data
- edgeR empirical analysis of DGE in R
- MaAsLin2 MaAsLin2: Microbiome Multivariate Association with Linear Models
- vegan R package for community ecologists
- microbiotaPair An R Package for Simplified Microbiome Analysis Workflows on Intervention Study # 虽然写的不咋样,但包含了我工作中常用的函数,还有一个基于真实数据的例子
R可视化
- ggplot2 An implementation of the Grammar of Graphics in R
- Widely used package for data visualization
- cowplot cowplot: Streamlined Plot Theme and Plot Annotations for ggplot2
- Widely used package for combining multiple plots
- ggpubr Extension of ggplot2 based data visualization
- Publication ready plots
- ggraph Grammar of Graph Graphics
- Network graphs using ggplot2
- ggcorrplot Visualization of a correlation matrix using ggplot2
- ggtree Visualization and annotation of phylogenetic trees (in R)
- pheatmap Pretty Heatmaps
- 画图网站神器 r-graph-gallery # 各种各样的R图的范式和代码,我经常在用
R数据操作 #这些包都可以在项目实践中学习
杂七杂八
- 谢神的R语言忍者秘籍 # 介绍了很多R里的坑
- 基于R语言的数据科学导论
- R与统计方法
CheatSheet
- All cheatsheet
- Base R cheatsheet # R基础命令
- RStudio IDE cheatsheet # RStudio界面和功能
- Regular Expressions cheatsheet # 正则表达
- Work with Strings cheatsheet # 字符操作
- data.table cheatsheet # 数据快速读写
- rmarkdown cheatsheet # Rmarkdown