数据结构
元素数据类型相同 | 元素数据类型不同 | |
---|---|---|
一维 | 向量(vector) | 列表(list) |
二维 | 矩阵(matrix) | 数据框(dara frame) |
N维 | 数组(array) |
array可以是一维也可以是多维!
创建数组
array(data=NA,dim=length(data),dimnames=NULL)
data
:用于创建数组的数据dim
:维度,例如c(3,4,2)dimnames
:传递一个列表,列表各个组件表示维度名字
数据索引
假设A是一个三维数组:
A[行索引,列索引,层索引]
假设A是一个四维数组:
A[行索引,列索引,层索引,立方体索引]
假设A是一个五维数组:
A[行索引,列索引,层索引,外层行,外层列]
三维:
> s<-array(sample(20:40,24,replace=T),
+ dim=c(3,4,2),
+ dimnames=list(paste0("型号",1:3), #行名
+ c("32G","64G","128G","256G"), #列名
+ c("A品牌","B品牌")) #层名
+ )
> s
, , A品牌
32G 64G 128G 256G
型号1 28 27 37 38
型号2 24 31 27 31
型号3 24 34 35 30
, , B品牌
32G 64G 128G 256G
型号1 21 34 23 36
型号2 26 37 39 34
型号3 27 32 21 20
> s[,,"B品牌"]
32G 64G 128G 256G
型号1 21 34 23 36
型号2 26 37 39 34
型号3 27 32 21 20
四维:
> b<-array(1:120,dim=c(4,5,3,2)) #4行 5列 3层 2个
> b
, , 1, 1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
, , 2, 1
[,1] [,2] [,3] [,4] [,5]
[1,] 21 25 29 33 37
[2,] 22 26 30 34 38
[3,] 23 27 31 35 39
[4,] 24 28 32 36 40
, , 3, 1
[,1] [,2] [,3] [,4] [,5]
[1,] 41 45 49 53 57
[2,] 42 46 50 54 58
[3,] 43 47 51 55 59
[4,] 44 48 52 56 60
, , 1, 2
[,1] [,2] [,3] [,4] [,5]
[1,] 61 65 69 73 77
[2,] 62 66 70 74 78
[3,] 63 67 71 75 79
[4,] 64 68 72 76 80
, , 2, 2
[,1] [,2] [,3] [,4] [,5]
[1,] 81 85 89 93 97
[2,] 82 86 90 94 98
[3,] 83 87 91 95 99
[4,] 84 88 92 96 100
, , 3, 2
[,1] [,2] [,3] [,4] [,5]
[1,] 101 105 109 113 117
[2,] 102 106 110 114