R 教程
谁适合阅读?
本教程针对的是R统计和绘图的知识,适合从事数据分析和数据可视化的人员阅读。
需要具备的知识?
如果你熟悉主流计算机编程语言,相信你会很快学会R。
本教程使用R和Rstudio作为编辑器来讲解R的应用。
怎么学习R语言?
入门看视频,快速进步靠书籍,高手查文档,顶尖要研究源码。
纸上得来终觉浅,绝知此事要躬行!不停地编码才能进步,不能光看不练。
推荐慕课网视频教程,适合入门者学习: R语言基础视频
学习路径: 视频入门,然后看书,《R语言实战》依旧是值得入手的经典书籍。
然后学习R包 ggplot2, dplyr 等,以及你的学科专用的几个R包。
统计是贯穿始终的,也是花样最多的。
绘图主要是基础R绘图、ggplot2绘图,如果还有需求,可以研究一下ggplot2的依赖包 grid,这是R最灵活也是最繁琐的绘图系统,能满足几乎任何天马行空的图形图像想象力。最新版的grid已经开始支持渐变色填充、图形填充、蒙版等PS功能,距离成为一个艺术品创建工具咫尺之遥了。
R base 并没有过时,高频使用,且是各种R包的基石。不要被某些商业宣传误导。
面对频繁修改的花哨的R包API,有些步骤如果不想纠缠,直接用可靠的R基础语法反而更节省时间。为了节省那几秒的运行速度,牺牲好几个甚至几十个小时排错,对于R使用者大多是不值得的。
可以时常思考的哲学问题: 如何高效地学好 R?
R的基础包括:查帮助文档、数据类型(vector/factor/df/list/matrix)、控制结构(if/for/while/)、函数与自定义函数、文件读写、字符串操作、统计(分布、抽样、检验、回归、相关)、ggplot2绘图、R包安装等。
中级的包括:基础绘图系统(高水平/低水平绘图函数、颜色系统)、自定义ggplot2(主题、图形等)、性能优化(向量化/耗时分析 system.time/多核并行)、apply家族函数、正则表达式、排错Debug与打印日志、脚本化及传参、机器学习与深度学习、复杂R包的安装、MySQL操作等。
高级包括: grid包绘图、测试Testing、函数作用域、OOP、环境、R的元编程、C/C++/Rcpp扩展、命名空间、R包编写、流程化、RPC框架、API、web交互,甚至给出一个更快的R运行环境等。
R还可以生成富JavaScript、交互式的web app,请查看
shiny,
htmlwidgets及其 demo,
RESTfull API 组件plumber
常用语句
暂时无法归类的常用语句。
# 字符串不自动转为因子
options(stringsAsFactors=F)
# jupyter中控制图形宽高,和pdf中宽高一致。放到每个图形之前。
options(repr.plot.width=12.5, repr.plot.height=5.5)
# 保留2位小数
formatC(0.00012583, format = "e", digits = 2) # "1.26e-04"
# 保存时
pdf("01.pdf", width=3, height=3, useDingbats = F)
print(g1)
dev.off()
ggsave("01.pdf", width=3, height=3, useDingbats = F)
# 设置边距的顺序(底部开始,顺时针):B, L, T, R
par(mar=c(4,4,1,1))
plot(1:10, main="x")
更多实例请阅读我的免费电子书: 《R 语言最佳实践》
R语言核心知识框架
下面是《R核心技术手册》的目录,勾画了R语言主要的知识点。
本站不提供电子版下载,如有需要可到电商平台等购买。
前言 xvi
I 基础篇
第1 章获取和安装R
R 版本
R 的安装
Windows
Mac OS X
Linux 和UNIX 系统
第2 章R 的用户界面
R 的图形用户界面
Windows
Mac OS X
Linux 和UNIX 程序
R 控制台
命令行编辑
批处理模式
在Excel 中使用R
RStudio
其他运行R 的方式
第3 章简短的示例
基本操作
函数
变量
数据结构简介
对象和类
模型和公式
图表
获得帮助
第4 章R 包
R 包概览
列示本地库中的R 包
加载R 包
在Windows 和Linux 系统下加载R 包
在Mac OS X 系统下加载R 包
搜索R 包资源库
探索网络上的R 包资源库
基于R 界面搜寻和安装包
从其他资源库安装R 包
定制R 包
创建包目录
创建R 包
II 语言篇
第5 章R 语言概览
表达式
对象
符号
函数
在赋值语句中,对象会被复制
R 中一切皆为对象
特殊值
NA
Inf 和-Inf
NaN
NULL
强制转换
R 解释器
观察R 是如何工作的
第6 章R 语法
常量
数值向量
字符向量
符号
运算符
运算顺序
赋值操作
表达式
分离型表达式
括号
花括号
控制结构
条件语句
循环
访问数据结构
数据结构操作符
通过整数向量引用
通过逻辑向量引用
通过名字进行引用
R 编程标准
第7 章R 对象
基本对象类型
向量
列表
其他对象
矩阵
数组
因子
数据框
公式
时间序列
Shingle 对象
日期和时间对象
连接对象
属性
类
第8 章符号和环境
符号
环境
全局环境
环境和函数
调用堆栈
在不同的环境中对函数求值
向环境中添加对象
异常
提示错误
捕获错误
第9 章函数
函数的关键字
参数
返回值
函数参数
匿名函数
函数的属性
参数顺序和具名实参
副作用
改变其他环境
输入/输出
图形
第10 章面向对象编程
R 的面向对象编程概览
核心概念
实现的例子
R 的面向对象编程:S4
类的定义
对象的新建
槽的存取
对象的操作
创建强制转换方法
方法
方法的管理
基本类型
更多的帮助
守旧派的OOP:S3
S3 的类
S3 方法
在S4 的类中使用S3 的类
查找隐藏的S3 方法
III 数据篇
第11 章数据的存取和编辑
在R 中输入数据
用R 命令输入数据
用图形界面输入数据
保存和读入R 对象
用save 保存对象
从外部文件导入数据
文本文件
其他软件
导出数据
从数据库获取数据
导出然后导入
数据库连接包
RODBC
DBI
TSDBI
从Hadoop 中获取数据
第12 章准备数据
合并数据集
粘贴数据结构
通过共同字段合并数据
数据转换
变量重新赋值
转换函数
对对象的每个元素进行函数运算
数据分段
shingle
Cut
利用分组变量合并对象
子集
中括号索引的方式
subset 函数
随机抽样
汇总函数
tapply 与aggregate
用rowsum 聚合表格
计数
数据修整
数据清洗
查找和删除重复数据
排序
IV 可视化篇
第13 章图形
R Graphics 概述
散点图
时间序列
柱状图
饼图
分类数据绘图
三维数据
绘制分布图
箱线图
画图设备
自定义图形
绘图函数常见参数
图形参数
基本图形函数
第14 章Lattice 绘图
历史
lattice 包概述
lattice 的工作原理
例子
使用lattice 函数
定制面板函数
高级lattice 函数
单一的网格作图
二元网格作图
三元图
其他图形
定制lattice 图
lattice 函数的常用参数
trellisskeleton
指定如何绘制坐标轴
参数
plottrellis
stripdefault
simpleKey
低级函数
低级绘图函数
面板函数
第15 章ggplot2
一个简短的介绍
图形语法
一个更复杂的例子:医保数据
快速绘图
用ggplot2 绘图
更多信息
V 统计篇
第16 章数据分析
描述性统计
相关系数和协方差
主成分分析
因子分析
bootstrap 重抽样
第17 章概率分布
正态分布
常见分布的参数
分布函数族
第18 章统计检验
连续型数据
基于正态分布的检验
不依赖分布的检验
离散数据
比例检验
二项式检验
列联表检验
列联表非参数检验
第19 章功效检验
实验设计示例
t 检验实验设计
比例实验设计
方差分析设计
第20 章回归模型
简单的线性模型示例
拟合模型
指定模型的工具函数
获取模型信息
更新模型
lm 函数的详述
最小二乘回归的假设
稳健回归和阻力回归
子集选取和Shrinkage 回归
变量的逐步选取
岭回归
Lasso 和最小角回归
弹性网络
主成分回归和偏最小二乘回归
非线性模型
广义线性模型
glmnet 包
非线性最小二乘
生存模型
平滑
样条线
拟合多项式曲面
核平滑
回归的机器学习算法
回归树模型
MARS 算法
神经网络
投影寻踪回归
广义可加模型
支持向量机
第21 章分类模型
线性分类模型
logistic 回归
线性判别分析
对数线性模型
机器学习分类模型
k 近邻
分类树模型
神经网络
支持向量机
随机森林
第22 章机器学习
购物篮分析
聚类
距离度量
聚类算法
第23 章时间序列分析
自相关函数
时间序列模型
VI 其他主题
第24 章优化R 程序性能
R 程序性能的测量
时间测定
性能分析
监控内存的使用
内存性能分析
优化你的R 代码
使用向量操作
R 中查找的性能
使用数据库查询大数据集
内存预分配
清理内存
大数据集的函数
加速R 的其他方法
R 字节码编译器
高性能的R 版本
第25 章Bioconductor
例子
加载原始的表达数据
从GEO 读取数据
匹配表型数据
分析表达数据
关键的Bioconductor 包
数据结构
eSet
AssayData
AnnotatedDataFrame
MIAME
Bioconductor 包使用的其他类
如何进一步学习
Bioconductor 之外的资源
教程
课程
相关图书
第26 章R 和Hadoop
R 和Hadoop
Hadoop 简介
RHadoop
Hadoop streaming
了解更多
一些其他的用R 做并行计算的包
Segue
doMC
从哪里我们可以了解更多6
参考文献
索引
R语言高级部分
高级R: https://adv-r.hadley.nz/index.html
R语言是C和R编写的,可以尝试看源码,能否看懂:https://github.com/wch/r-source