在學習了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、數組的常用運算
可以使用+,-,*,/進行運算。
(完)
新聞熱點
疑難解答