创建数据集之数组

数组是矩阵的扩展,它将矩阵扩展到2维以上。如果给定的数组是1维的则相当于向量,2维的相当于矩阵。

数组可以是数值型,逻辑型,字符型或复数型等等,但只能是其中之一,不能混用。

  • 数组的创建

数组使用array函数创建。函数的原型如下:

array(data = NA, dim = length(data), dimnames = NULL)
as.array(x, ...)              #将另一种数据类型强制转换成数组
is.array(x)                   #判断类型是否为数组

其中data是提供数据以填充数组的向量(包括列表或表达式向量);dim创建的数组的维度,它是长度为1或更大的整数向量,给出了每个维度的最大索引;dimnames可以命名数组的每个维度,为NULL或列表。 这必须是一个列表(或将被忽略),其中每个维度都有一个组成部分,或者为NULL或该维度的dim给定长度的字符向量。 如果列表短于维数,则将NULL扩展为所需的长度。

例子:

a <- array(1:10)                  #相当于1维的向量1 2 3 4 5 6 7 8 9 10
a <- array(1:24,dim = c(4,6))     #相当于46列的矩阵
a <- array(1:24,dim = c(4,5,3))   #创建了一个4×5×3维的数组
rowNames <- c("R1","R2","R3","R4")
colNames <- c("C1","C2","C3","C4","C5")
listNames <- c("表一","表二","表三")
a <- array(1:24,dim = c(4,5,3),dimnames = list(rowNames,colNames,listNames))

创建数据集之数组_第1张图片图一

  • 数组的索引
rowNames <- c("R1","R2","R3","R4")
colNames <- c("C1","C2","C3","C4","C5")
listNames <- c("表一","表二","表三")
a <- array(1:24,dim = c(4,5,3),dimnames = list(rowNames,colNames,listNames))
a[1,2,3]                             #查找第三个维度中,第一行第二列的元素
a[1,3,]                              #查找第一行第三列的元素,若没有指定最后一个参数,则全部提取出来
a[3,,]                               #查找第三行的所有元素
a[,5,]                               #查找第五列的所有元素
a[,,2]                               #查找第二个表
a["R1","C3","表二"]
a["R3",,]
a[,"C2",]
a[,,"表一"]
a[1:2,c(2,5),]

创建数据集之数组_第2张图片图二

创建数据集之数组_第3张图片图三

  • 数组的编辑
a <- array(1:24,dim = c(2,3,4))
a[2,3,1] <- 18                          #将第一个表中的第二行第二列的元素改为18
a[2,3, ] <- 25                          #将四个表中的第二行第二列的元素全部改为25
a[,3,] <- 66                            #将四个表中的第三列的元素全部改为66
b <- a[,,-4]                            #将第四个表屏蔽后赋给b,即删除的第四个表

创建数据集之数组_第4张图片图四

  • 参考资料

《R语言实战》第二版

R语言入门基础

array函数的使用帮助

上述的使用帮助都可以使用help函数进行查询。

你可能感兴趣的:(创建数据集之数组)