R 语言可以创建一维或多维数组。R 语言数组是一个同一类型的集合,矩阵 matrix 其实就是一个二维数组。
Usage array(data = NA, dim = length(data), dimnames = NULL) 1. 数组创建# 一维数组 a <- array(c(1:20)) # 二维数组 a <- array(c(1:30),dim=c(6,5)) # 三维数组,data元素循环使用 a <- array(data=c(1:30),dim=c(6,5,2)) array(0,dim=c(3,4,2))
注:一维数组通常看起来像向量,但某些函数的处理方式可能有所不同;二维数组就是矩阵
2. 命名数组列和行row.names <- c("ROW1","ROW2","ROW3")
column.names <- c("COL1","COL2","COL3")
matrix.names <- c("Matrix1","Matrix2")
# 创建数组
result <- array(data = c(1:18),dim = c(3,3,2),
dimnames = list(row.names, column.names, matrix.names))
# 修改第一纬度名称(行名)
dimnames(result)[1] = list(c("r1","r2","r3"))
# 修改各个维度名称
dimnames(result) = list(c("r1","r2","r3"),c("c1","c2","c3"),c("m1","m2"))
3. 数组元素操作
a <- array(c(11:70),dim=c(6,5,2)) dim(a) # 查看维度 a[1,2,1] # 一个元素 a[,,2] # 第二个matrix a[3,,2] # 第二个matrix的第三行 a[3,,] # 所有matrix的第三行 a[c(1,3),2,] # 所有matrix的第一三行和第二列 # 修改 a[1,2,1] = 100 # 选择,返回向量 a[which(a>30)] a[a>30] # 数组的四则运算 b <- array(c(10:60),dim=c(6,5,2)) a*2+b4. 跨数组元素的计算
# Create two vectors of different lengths. vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Take these vectors as input to the array. new.array <- array(c(vector1,vector2),dim = c(3,3,2)) print(new.array) # 第一维度(行)求和. across所有列和所有matrix,返回向量,长度等于行数。 result <- apply(new.array, c(1), sum) print(result) # 两个matrix相加 result <- apply(new.array, c(1,2), sum) print(result)



