数组是矩阵的扩展,它将矩阵扩展到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)) #相当于4行6列的矩阵
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))
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),]
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,即删除的第四个表
《R语言实战》第二版
R语言入门基础
array函数的使用帮助
上述的使用帮助都可以使用help
函数进行查询。