基础知识
1. 读写¶
1.1. 控制台输出¶
1 2 3 4 5 6 | |
1.2. 设定工作目录¶
在工作时,进行文件操作时,我们需要先指定目标工作目录。
使用函数 setwd() 来设定工作目录。括号里面写上要设定的目录路径。
设定完成以后,可以使用 print(getwd()) 来查看当前工作目录。
1.3. 读写文件¶
1.3.1. 读文件¶
使用 read.csv() 来读取 CSV 文件,返回格式为数据框。
1 2 | |
可以通过 data$列名 来访问数据框中的列。
1.3.2. 写文件¶
1.3.2.1. txt 文件¶
使用 sink() 函数。
首先需要重定向到文件:sink("filename.txt", append = TRUE)
filename.txt- 要写入的文件名。append = TRUE- 是否追加到文件末尾。不追加则会覆盖原文件。
接着就可以用在控制台输出的语句来写入文件。
输出结束后,使用 sink() 函数关闭文件(参数为空)。
1.3.2.2. pdf 文件¶
方法类似,需要先重定向到一个 pdf 文件,在输出结束后还需要关闭文件。
不同在于,重定向使用 pdf("filename.pdf"),关闭文件使用 dev.off()。
中间可以使用 plot() 函数等来绘制图形。
1 2 3 | |
1.3.2.3. png 文件¶
方法和 pdf 文件类似,但需要使用 png() 函数。
1 2 3 | |
2. 数据类型¶
- 向量 Vector
- 矩阵 Matrix
- 数组 Array
- 数据框 Data Frame
- 因子 Factor
- 列表 List

2.1. 向量 Vector¶
创建:使用 c() 函数,将元素用逗号隔开。
1 2 3 | |
2.2. 矩阵 Matrix¶
2.2.1. 创建¶
2.2.1.1. 使用 matrix() 函数创建矩阵¶
创建:使用 matrix() 函数,指定填充值、行数、列数。如果填充值比总数少,将会重复补充值。
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 | |
2.2.1.2. 使用 cbind() 和 rbind() 函数合并矩阵¶
合并:使用 cbind() 和 rbind() 函数,分别将两个矩阵沿列和行方向进行合并。
也可将向量合并为矩阵。向量不管哪种合并方式,都并排合并。
2.2.2. 转置¶
使用 t() 函数进行转置,返回转置后的矩阵。
1 2 | |
2.2.3. 对角线操作¶
使用 diag() 函数进行对角线操作,代表的是矩阵的对角线元素组成的向量。
可以通过赋值语句来修改对角线元素。
2.2.4. 小技巧¶
2.2.4.1. 赋值¶
已知矩阵 m,向量 x、y 和 v,想要将 v[i] 的值赋给 m 在第 x[i] 行第 y[i] 列的元素。
1 | |
2.3. 数组 Array¶
与矩阵类似,但可以有多个维度。
2.4. 数据框 Data Frame¶
数据框是 R 中最常用的一种数据结构。数据框由一组有相同结构的列组成,每一列可以是不同类型的数据。
2.5. 因子 Factor¶
因子是 R 中用于表示分类变量的数据类型。
3. 基本运算¶
3.1. 加减乘除¶
不仅可以对数字进行运算,还可以对向量、矩阵、数组等进行运算。
如 c(1, 2, 3) + c(4, 5, 6) 结果为 c(5, 7, 9)。
大小相同的向量、矩阵、数组等可以进行对应位置的加减乘除运算。
3.2. 指数运算¶
使用 ^ 或者 ** 进行指数运算。
3.3. 取余与整除¶
- 取余运算:使用
%%运算符 - 整除运算:使用
%/%运算符
4. 常用函数¶
4.1. 随机数生成¶
- runif - uniform 产生均匀分布的随机数。
runif(count, lower, upper)- 产生
count个均匀分布的随机数,范围在lower和upper之间。
- 产生
- rnorm - normal 产生正态分布的随机数。
rnorm(count, mean, sd)- 产生
count个正态分布的随机数,均值为mean,标准差为sd。
- 产生
- sample - 从一个已有的数据集中随机抽取指定个数的元素。
sample(vector, size, replace)- 从
vector中随机抽取size个元素,replace为TRUE时可以重复抽取。
- 从
4.2. 序列生成¶
- sequ - sequence 生成等差数列。
seq(from, to, by)- 生成从
from到to之间,步长为by的等差数列。
- 生成从
- rep - repetition 重复生成元素。
rep(element, times)- 重复
elementtimes次。
- 重复
rep(element_vec, times_vec)- 重复,且
element_vec每个元素重复次数由times_vec的对应元素指定。
- 重复,且
rep(element, l=length)- 重复
element,生成长度为l的向量。
- 重复
4.3. 统计函数¶
- mean - 计算平均值。
mean(x)- 计算
x的平均值。
- 计算
- sd - 计算标准差。
sd(x)- 计算
x的标准差。
- 计算
- max - 计算最大值。
max(x)- 计算
x的最大值。
- 计算
- min - 计算最小值。
min(x)- 计算
x的最小值。
- 计算
- sum - 计算和。
sum(x)- 计算
x的和。
- 计算
- sqrt - 计算平方根。
sqrt(x)- 计算
x的平方根。
- 计算
- range - 计算范围。
range(x)- 计算
x的范围。
- 计算
- length - 计算长度。
length(x)- 计算
x的长度,会包含NA值。
- 计算
4.4. NA(Not Available) 处理¶
数据中可能包含缺失值,如果存在缺失值,会导致一些统计函数无法正常运行。
如:mean(c(1, 2, NA)) 会输出 NA
所以用以下函数来处理数据,去除 NA 值。
- is.na - 判断是否为 NA。
is.na(x)- 逐个输出每一个元素是否为
NA的布尔值。
- 逐个输出每一个元素是否为
例如给 a <- c(1, 2, NA, 4, NA) 去除 NA 值,可以用以下代码:
1 | |
过滤器会只保留布尔值为 TRUE 的元素,所以得到的 a_new 为 c(1, 2, 4)。
4.5. apply() 函数¶
apply() 函数可以对矩阵、数组等进行操作。
使用方法:apply(X, MARGIN, FUNCTION)
X- 矩阵、数组等。MARGIN- 1 表示对行操作,2 表示对列操作。FUNCTION- 要进行的操作函数。
如:
apply(X, 1, mean)- 对矩阵X的每一行求平均值。apply(X, 2, mean)- 对矩阵X的每一列求平均值。apply(X, 1, myFunc)- 对矩阵X的每一行调用函数myFunc。
5. R Strings¶
5.1. 拼接¶
- paste - 连接字符串。
paste(string1, string2, ...)- 连接多个字符串,默认用空格分隔,可以用
sep参数指定分隔符。
- 连接多个字符串,默认用空格分隔,可以用
- paste0 - 连接字符串,不用空格分隔。
paste0(string1, string2, ...)- 连接多个字符串,不用空格分隔。
6. R Loops¶
6.1. for 循环¶
1 2 3 4 | |
7. R Functions¶
7.1. 创建函数¶
1 2 3 4 5 6 7 8 | |
8. 包的安装与使用¶
8.1. 安装¶
1 | |
8.2. 启用包¶
在 R Studio 中的 Packages 选项卡中勾选需要的包。
然后在代码中使用 library("包名") 函数启用包。