数组是二维或多维(三维或多于三维),二维数组叫做矩阵。数组元素的类型是相同的,每个维度的元素数量是相同的。数据框是二维对象,每个数据列的数据类型是相同的,不同数据列的数据类型可以不同。
一,数组(array)
R使用arrary()函数创建数组,该函数至少需要两个向量参数:数组的元素值(data)向量,和维度(dim)向量,第三个参数是可选的维度名(dimnames)向量。数据(data)参数是数组的所有元素值向量,维度参数(dim)指定各个维度的元素数量,维度名(dimnames)参数是可选的,用于指定各个维度的名称。
array(data = NA, dim = length(data), dimnames = NULL)
数组的维度是有顺序的,维度参数(dim)的第一个维度是row,第二个维度是column,第三个维度是high,以此类推,数组是按照维度的顺序把数据(data)参数的数据填充到数组中。
严格来说,数组(或矩阵)的长度和维度是固定的,因此不能增加或删除行或列,但可以通过为数组(或矩阵)重新赋值来实现行或列的增加或删除。
1,创建数组
示例:data=c(1:12),dim=c(2:3:2),这说明,数组共有:第一维是2行,第二维是3列,第三维是2项(item),参数dimnames为三个维度的row,column和itme命名。
> three_d_array=array( + data=c(1:12), + dim=c(2,3,2), + dimnames=list( + c('r1','r2'), + c('c1','c2','c3'), + c('h1','h2') + ) + )
打印的结果如下,其中“ , , h1”,表示第三维的第一个item,数组按照(1,1,1),(2,1,1),(1,2,1),,的顺序填充元素值。
, , h1 c1 c2 c3 r1135 r2246 , , h2 c1 c2 c3 r17911 r281012
2,数组的维度和长度
函数dim()返回数组的各个维度的长度,输出的结果按照维度的顺序依次显示:
> dim(three_d_array) [1]232
特别地,函数nrow(),ncol(),用于返回数组的第一个维度,