R 语言在统计作图方面有独特优势,目前已成为许多数据科学团队最常用的语言之一。本章简要介绍 R 语言的基础知识,让读者能够开启 R 语言的学习,首先要做的是准备工作环境。
1.1 R 的安装
进入CRAN 官方网站,选择对应平台的版本。
- Download R for Linux (Debian, Fedora/Redhat, Ubuntu)
- Download R for macOS
- Download R for Windows
一般来说,安装最新的 R 版本总是好的。
1.2 RStudio
RStudio 是目前最受欢迎的 R 语言集成开发环境之一。可从RStudio 主页免费下载其 Desktop 版本。
1.3 工作流程
1.3.1 基础
1.3.1.1 代码基础
R 可以当作计算器来使用:
代码语言:javascript复制2 3
# [1] 5
2 * 3
# [1] 6
R 的赋值语句:
代码语言:javascript复制object_name <- value
如:
代码语言:javascript复制x <- 3 * 4 # 变量x等于3乘以4
y <- 5 * x # 变量y等于5乘以x
R 语言使用独具特色的<-
来赋值,实际上=
也可以,具体如何选择依个人习惯而定。值得一提的是,如果进行大量赋值操作,输入<-
实在太繁琐了,如果在 RStudio 中,可以使用快捷键:Alt -
(Alt 加上减号)。
1.3.1.2 变量命名
变量名称必须以字母开头,并且只能包含字母、数字、下划线和点号。推荐使用 snake_case 命名法,即使用小写单词,并用下划线分隔:
代码语言:javascript复制snake_case_variate
也有的用户习惯使用驼峰命名法,如:
代码语言:javascript复制CamelCaseVariate
1.3.1.3 函数调用
R 函数的调用方法是:
代码语言:javascript复制function_name(arg1 = val1, arg2 = val2, ...)
如:
代码语言:javascript复制seq(1, 10)
# [1] 1 2 3 4 5 6 7 8 9 10
df <- read.table("/path/to/file") # 读取某个表格文件的结果,并放入变量df中
1.3.1.4 简单练习
初学者可以通过练习《An Introduction to R》手册中附录 A 的例子感受 R 语言的工作方式,从而消除陌生感:
- 启动 RStudio;
- 在控制台输入
help.start()
,回车; - 找到《An Introduction to R》的附录 A:A sample session;
- 开始练习。
1.3.2 脚本
一些简单的,非重复的任务,可以直接在控制台下执行,比如通过install.package()
安装 R 包。但是如果任务比较复杂,代码量比较大,则应该将代码写在 R 脚本中,保存脚本时,通常以.R
结尾。
运行脚本:
Ctrl Enter
,没有选定行时,执行光标所在的一行;Ctrl Enter
,有选定的行时,执行选定的行;Ctrl Shift S
,运行整个脚本。
1.3.3 项目
1.3.3.1 工作空间
工作空间(workspace)是 R 的工作环境。不管是在控制台或者 R 脚本中创建的对象都被临时保存在工作空间(也可称为全局环境,.GlobalEnv)中。可以用函数ls()
列出当前工作空间中的所有对象,或者使用rm()
函数删除某个对象。rm(list = ls())
命令会删除当前工作空间中的所有对象。
退出 R 时,如果选择保存工作空间,R 将会在工作空间所有文件夹中创建两个新文件。所有运行过的命令都被保存到一个名为“.Rhistory”的文件中,所有对象被保存到名为“.Rdata”的文件中。当 R 重新启动后,将自动恢复上一次保存的工作环境以及使用过的命令。建议不保存工作空间,因为代码才是最重要的,命令和对象都可以通过代码重新生成。取消保存工作空间的方法:
Tools -> Global Options… -> General -> Save worksapce to .RData on exit: Never
工作目录(working directory)是 R 用来读取文件和保存结果的一个文件夹。可以通过getwd()
命令来得到当前的工作目录,也可以通过setwd()
命令来设置工作目录,但通常不建议这么做,因为有更好的方法,即 RStudio 项目。
1.3.3.2 RStudio 项目
数据分析的最佳实践是为每一个任务都创建一个 RStudio 项目,这有明显的好处:
- 将所有任务相关的文件放在一起,如输入数据、R 脚本、分析结果等;
- 项目中可以使用相对路径;
1.4 R 包
R 包是一些实现特定功能的函数、数据集和文档的集合。R 包有 3 种类型:
- 基础包,在 R 启动时就自动调入内存,可以直接使用;
- 推荐包,这些包已经随 R 安装好,但需要使用 library()或 require()函数调入内存后才能使用;
- 其他第三方包,这些包需要用户单独下载安装,然后通过 library()或 require()函数调入内存使用。
可以用search()
命令查看当前哪些包加载到了内存中。
1.4.1 包的安装
安装和更新 CRAN 包:
代码语言:javascript复制install.packages() # 安装
update.packages() # 更新
安装 Bioconductor 包:
代码语言:javascript复制if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install()
1.4.2 包的加载
代码语言:javascript复制library()
require()
1.5 获得帮助
R 提供了大量帮助文档,学会查看这些文档无疑会有助于问题的解决。可以通过下表列出的函数获得相应的帮助。
函数 | 功能 |
---|---|
help.start() | 打开帮助文档首页 |
help(foo)或?foo | 查看函数foo的帮助 |
help.search(foo)或??foo | 以foo为关键词搜索本地帮助文档 |
example(foo) | 函数foo的使用示例 |
RSiteSearch(“foo”) | 以foo为关键词搜索在线文档和邮件列表存档 |
apropos(“foo,” mode=“function”) | 列出名称中含有foo的所有可用函数 |
data() | 列出当前已加载包中所含的所有可用示例数据集 |
vignette() | 列出当前已安装包中所有可用的vignette文档 |
vignette(“foo”) | 为主题foo显示指定的vignette文档 |