R语言数据结构——数组
R语言入门到入土系列将从R语言基础到R语言在数据分析中的实战,如有兴趣可移步主页进行阅读。
向量(vector)属于一维向量,是R语言数据结构中最基础的数据结构,矩阵(matrix)属于二维向量,其中的元素与向量相同;数组(array)属于多维数据,可以理解为由多个矩阵组合而成。
数组的创建
array()函数详解
array()函数是将一个向量转化为数组,因此也需要有数组作为前提。
array(data = NA, dim = length(data), dimnames = NULL)
参数解释:
data :为数组的元素数据
dim :为数组的纬度,包括三个纬度,分别是矩阵的行列,以及矩阵的数量
dimnames : 行列名以及各矩阵名,通常为list(),包含三个向量
x_1 <- seq(1:27)
x_2 <- array(x_1,c(3,3,3),dimnames =
list(c('r1','r2','r3'),c('c1','c2','c3'),c('m1','m2','m3')))
数组的索引
数组的下角标索引
索引与矩阵相似,需要注意的是数组维数比矩阵大,索引时需要加上第三个纬度也可以通过名字索引。三个下角标,可以随意分配,矩阵的对应行列以及单独的元素都可以索引到。
x_1 <- seq(1:27)
x_2 <- array(x_1,c(3,3,3),dimnames =
list(c('r1','r2','r3'),c('c1','c2','c3'),c('m1','m2','m3')))
x_2[2,,2] # 11 14 17
x_2[2,2,] # 5 14 23
x_2[2,2,2] # 14
数组的修改
数组的修改与矩阵的修改类似,需要先找到对应的位置,然后利用赋值语句进行修改。也可以对指定元素、行、列、矩阵进行修改。
x_1 <- seq(1:27)
x_2 <- array(x_1,c(3,3,3),dimnames =
list(c('r1','r2','r3'),c('c1','c2','c3'),c('m1','m2','m3')))
x_2[,,1] <- matrix(c(31:39),3,3) #修改第一个矩阵
x_2[1,,3] <- c(99,88,77) # 对第三矩阵第一行修改
x_2[2,2,2] <- 41 #修改指定的元素