首页 > 编程 > R > 正文

R语言中数组对象的使用

2023-05-01 13:45:48
字体:
来源:转载
供稿:网友

在学习了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维的数组

其结果如下:

R语言中创建数组的方法

这里创建的数组第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语言中列表对象的使用。

其结果形式如下:

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"]  #通过水平名称的组合来获取元素值

R语言中数组索引的使用方式

arr[1:3,c(1,3),]

R语言中使用向量的方法访问数组中的元素

3、数组的编辑

与矩阵相似,这里仅举几个例子来说明一下:

(1)修改数组元素值

  arr[2,3,1]  <- 18

  arr[2,3,] <- c(110,111)

R语言中修改数组中的元素值

  arr[,2,] <- c(333,444,555,666,777,888)

R语言中修改数组某一维度的元素值

arr[,,-2]  #排除第3个维度第2个水平的元素,不是删除,只是不访问这一水平而已

(3)删除数组的水平

  参考矩阵中的具体应用,这里不再赘述。

4、数组的常用运算

可以使用+,-,*,/进行运算。

(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表