R语言初级教程(16): 数组

2020-06-17 00:00:00 函数 数组 维度 向量 矩阵

在R中,向量(vector)是一维数据,矩阵(matrix)是二维数据。数组(array)是向量和矩阵的推广,是多维(三维或三维以上)数据。前面提到过,与向量和矩阵一样,数组的元素必须也是同一类型的数据。

下面将以三维数组为例,来了解一下在R中如何创建数组,后介绍一个数组维度调换函数:aperm()。至于数组元素的访问、修改等内容,由于数组只是在矩阵基础上增加了维度而已,因此可参照矩阵相关内容,这里将不再介绍。

1. 创建数组

在R中,一般用array()函数来创建数组。array()的原型为:array(data = NA, dim = length(data), dimnames = NULL),其中:data给定数组元素,默认情况下是NAdim用来指定数组的维度,默认情况下是一维数组;dimnames设定各维度的名称,必须是个列表,默认情况下无名称。

来看个三维数组的例子:

> data <- array(1:24, 2:4)  ## 2x3x4的三维数组,元素为1到24的序列
> data
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

, , 4

     [,1] [,2] [,3]
[1,]   19   21   23
[2,]   20   22   24

> dim(data)    ##获取数组维度
[1] 2 3 4

## 添加各维度名称
> dimnames(data)[[1]] <- c("male","female")
> dimnames(data)[[2]] <- c("young","middle","old")
> dimnames(data)[[3]] <- c("A","B","C","D")
> dimnames(data)  ##输出各维度的名称
[[1]]
[1] "male"   "female"

[[2]]
[1] "young"  "middle" "old"   

[[3]]
[1] "A" "B" "C" "D"

> data
, , A

       young middle old
male       1      3   5
female     2      4   6

, , B

       young middle old
male       7      9  11
female     8     10  12

, , C

       young middle old
male      13     15  17
female    14     16  18

, , D

       young middle old
male      19     21  23
female    20     22  24

相关文章