数组主要用于存储多维数据,可分为一维数组、二维数组、三维数组和多维数组,一般三维以上的数组称为多维数组。
一维、二维、三维数组的示意图如图4.35所示。
图4.35 数组示意图
一维数组:一维数组很简单,就是一行数据。
二维数组:数组元素仍为数组的数组。二维数组包括行和列,类似于表格形状,又称为矩阵。
三维数组:由维度相同的矩阵构成的集合,所有元素组成一个长方体。三维数组包括固定的行、列,还有第三个维度叫作层。
三维数组是最常见的多维数组,可用来描述三维空间中的位置或状态。例如,彩色图像就是三维数组,灰度图像是二维数组。
在R语言中,创建数组一般使用array()函数,语法格式如下:
array(data = NA, dim = length(data), dimnames = NULL)
参数说明如下。
data:表示数据。
dim:表示数组的维数,是数值型向量。
dimnames:表示数组各维度中名称标签列表。
【例4.8】 创建数组 (实例位置:资源包\Code\04\08)
下面介绍如何创建数组。运行RStudio,编写如下代码。
运行程序,结果如图4.36所示。
图4.36 创建数组
在R语言中,创建数组还可以使用dim()函数。dim()函数用于获取或设置指定矩阵、数组或数据框的维数。创建方法是通过dim()函数和赋值运算相结合将向量变成数组。
例如,创建一个2行5列2层的数组,示例代码如下:
1 a <- 1:20 # 创建向量 2 dim(a) <- c(2,5,2) # 添加维度2行5列2层 3 print(a)
运行程序,结果如图4.37所示。
图4.37 dim()函数创建数组
数组索引用于获取数组中的元素,与向量索引一样,在方括号“[ ]”中指定元素所在位置就可以访问该元素。不同的是,数组用于存储多维数据,所以索引需用多个下标(即位置)。
例如,a[1,5]表示访问第1行第5列元素,结果为9,如图4.38所示;b[2,3,3]表示访问第2行第3列第3层的元素,结果为6,如图4.39所示。
图4.38 获取数组中的元素1
图4.39 获取数组中的元素2
【例4.9】 访问数组元素 (实例位置:资源包\Code\04\09)
随机创建一组学生成绩数据,然后获取指定的数据。运行RStudio,编写如下代码。
运行程序,结果如图4.40和图4.41所示。
图4.40 原始数据
图4.41 获取指定的数据
数组的修改与矩阵的修改类似,首先找到索引位置,然后利用赋值语句进行修改。 【例4.10】 修改指定学生的学习成绩 (实例位置:资源包\Code\04\10)
修改指定学生的学习成绩,运行RStudio,编写如下代码。
运行程序,结果如图4.42和图4.43所示。
图4.42 原始数据
图4.43 修改后的数据