R语言中向量(vector)分为两大类。
(1)原子向量(atomic vectors)。
(2)列表(list)。
本节重点介绍原子向量,列表将在下一节再详细介绍。
如果不做特殊说明,本书中所提到的向量就是原子向量。
原子向量是一维的数据结构,可以包含相同数据类型的多个元素,它是R语言中最基本的数据结构。
原子向量的元素可以是数值、字符、逻辑值、复数或原生字节。常见的原子向量类型包括数值向量、字符向量、逻辑向量、复数向量和原生向量。整数类型向量如图3-1所示,字符类型向量如图3-2所示。
图3-1 整数类型向量
图3-2 字符类型向量
在R语言中,有以下几种常用的创建向量的方法。
(1)使用c()函数手动创建向量。
示例代码如下。
上述示例代码解释如下。
代码第①行创建一个字符向量。
代码第②行使用typeof()函数可以查看向量的类型。
代码第③行和第④行分别创建两个数值向量。
代码第⑤行创建的向量中元素有字符串和整数,需要注意的是数值会被转换为字符。
上述示例代码运行结果如下。
(2)使用其他方法创建向量。
示例代码如下。
上述示例代码运行结果如下。
在 R 语言中,向量具有许多属性。这些属性可以提供有关向量的信息,包括长度、数据类型、维度等。以下是一些常见的向量属性。
(1)长度(Length):表示向量中元素的数量。可以使用 length() 函数来获取向量的长度。
(2)数据类型(Data Type):每个向量都有一个数据类型,它表示向量中元素的数据类型。常见的数据类型包括数值型、字符型、逻辑型等。
(3)维度(Dimension):用于指示向量是不是多维的。通常向量是一维的,但如果我们将其重新维度化为矩阵或数组,它将具有维度属性。
示例代码如下。
上述示例代码运行结果如下。
要访问向量元素,我们可以使用向量的索引。在 R 语言中,向量索引从1开始,而不是从0开始,这意味着第一个元素的索引是1,第二个元素的索引是2,依次类推。向量索引如图3-3所示。
图3-3 向量索引
R语言中访问向量元素有多种形式,示例代码如下。
上述示例代码解释如下。
代码第①行使用单个整数索引来访问向量中的单个元素。
代码第②行使用多个索引访问向量,这需要使用一个向量作为索引来同时访问多个元素。
代码第③行使用负数索引访问向量,它可以从向量中排除特定元素。
代码第④行使用逻辑索引访问向量,其中TRUE表示选择对应位置的元素,而FALSE表示不选择。
代码第⑤行使用索引范围访问向量,[2:4]表示选择第二到第四个元素。
上述示例代码运行结果如下。
遍历向量就是循环访问向量中的每个元素,我们可以使用不同的控制结构来完成这个任务,包括for循环、while循环和向量化操作。示例代码如下。
上述示例代码运行结果如下。
在 R 语言中,我们使用运算符“%in%”来检查向量或列表等数据结构中是否存在指定的元素并返回布尔值。如果运算结果返回TRUE,说明指定的元素存在;否则,返回FALSE。
使用运算符“%in%”的示例代码如下。
上述示例代码运行结果如下。