R 语言教程 之 R 数据类型 2
R 数据类型
数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。
变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
向量
向量(Vector)在 Java、Rust、C# 这些专门编程的的语言的标准库里往往会提供,这是因为向量在数学运算中是不可或缺的工具——我们最常见的向量是二维向量,这种向量在平面坐标系中必然会用到。
向量从数据结构上看就是一个线性表,可以看成一个数组。
R 语言中向量作为一种类型存在可以让向量的操作变得更加容易:
实例
a = c(3, 4)
b = c(5, 0)
a + b
[1] 8 4c() 是一个创造向量的函数。
这里把两个二维向量相加,得到一个新的二维向量 (8, 4)。如果将一个二维向量和三维向量做运算,将失去数学意义,虽然不会停止运行,但会被警告。
我建议大家从习惯上杜绝这种情况的出现。
向量中的每一个元素可以通过下标单独取出:
实例
a = c(10, 20, 30, 40, 50)
a[2]
[1] 20
注意:R 语言中的"下标"不代表偏移量,而代表第几个,也就是说是从 1 开始的!
R 也可以方便的取出向量的一部分:
实例
a[1:4] # 取出第 1 到 4 项,包含第 1 和第 4 项
[1] 10 20 30 40
a[c(1, 3, 5)] # 取出第 1, 3, 5 项
[1] 10 30 50
a[c(-1, -5)] # 去掉第 1 和第 5 项
[1] 20 30 40
这三种部分取出方法是最常用的。
向量支持标量计算:
实例
c(1.1, 1.2, 1.3) - 0.5
[1] 0.6 0.7 0.8
a = c(1,2)
a ^ 2
[1] 1 4
之前讲述的常用的数学运算函数,如 sqrt 、exp 等,同样可以用于对向量作标量运算。
"向量"作为线性表结构,应该具备一些常用的线性表处理函数,R 确实具备这些函数:
向量排序:
实例
a = c(1, 3, 5, 2, 4, 6)
sort(a)
[1] 1 2 3 4 5 6
rev(a)
[1] 6 4 2 5 3 1
order(a)
[1] 1 4 2 5 3 6
a[order(a)]
[1] 1 2 3 4 5 6
order() 函数返回的是一个向量排序之后的下标向量。