在学习了R语言的向量和矩阵之后,本文将详细介绍R语言中的另外一个数据对象——数组。
在R语言中,可以认为数组是矩阵的扩展,它将矩阵扩展到2维以上。
如果给定的数组是1维的则相当于向量,2维的相当于矩阵。
R语言中的数组元素的类型也是单一的,可以是数值型,逻辑型,字符型或复数型等。
1、数组的创建
在R语言中,数组使用array()函数创建。array()函数的原型如下:
array( data = NA, dim = length(data),dimnames = NULL)
参数中,data为创建数组的元素;dim为数组的维数,是数值型向量;dimnames各维度中名称标签列表。
下面给出几个具体的例子:
arr <- array(1:10) #相当于1维的向量:1 2 3 4 5 6 7 8 9 10
arr <- array(1:10,dim=c(2,5)) #相当于2行5列的矩阵
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
arr <- array(1:24, dim=c(3,4,2)) #闯将了一个3×4×2维的数组
其结果如下:
这里创建的数组第1维有3个水平,第2维有4个水平,第3维有2个水平
在创建数组时可以给数组的每一维的每个水平取名字:
> dim1<-c("A1","A2","A3")
> dim2<-c("B1","B2","B3")
> dim3<-c("C1","C2")
> arr<-array(1:18,dim=c(3,3,2),dimnames=list(dim1,dim2,dim3))
这里使用列表创建了数组各维度标签名称,关于列表的使用,请参见:R语言中列表对象的使用。
其结果形式如下:
2、数组的索引
R语言中对数组元素的索引与矩阵相似(关于矩阵的索引方法,可参考《R语言中矩阵的使用》),这里举几个例子:
arr[2,3,1] # 获取单个元素的值:8
arr[2,1,] #获取第1个维度的第2个水平和第2个维度的第1个水平的所有元素值
arr[2,,] #获取第1个维度的第2个水平的所有组合元素值
arr[,2,] #获取第2个维度第2个水平的所有组合元素值
arr["A2","B3","C2"] #通过水平名称的组合来获取元素值
arr[1:3,c(1,3),]
3、数组的编辑
与矩阵相似,这里仅举几个例子来说明一下:
(1)修改数组元素值
arr[2,3,1] <- 18
arr[2,3,] <- c(110,111)
arr[,2,] <- c(333,444,555,666,777,888)
arr[,,-2] #排除第3个维度第2个水平的元素,不是删除,只是不访问这一水平而已
(3)删除数组的水平
参考矩阵中的具体应用,这里不再赘述。
4、数组的常用运算
可以使用+,-,*,/进行运算。
(完)
新闻热点
疑难解答