天天看點

R 數組

數組也是 R 語言的對象,R 語言可以建立一維或多元數組。

R 語言數組是一個同一類型的集合,前面我們學的矩陣 matrix 其實就是一個二維數組。

向量、矩陣、數組關系可以看下圖:

R 數組

R 語言數組建立使用 array() 函數,該函數使用向量作為輸入參數,可以使用 dim 設定數組次元。

array() 函數文法格式如下:

參數說明:

data 向量,數組元素。

dim 數組的次元,預設是一維數組。

dimnames 次元的名稱,必須是個清單,預設情況下是不設定名稱的。

以下執行個體我們建立一個 3 行 3 列的的二維數組:

# 建立兩個不同長度的向量

vector1 <- c(5,9,3)

vector2 <- c(10,11,12,13,14,15)

# 建立數組

result <- array(c(vector1,vector2),dim = c(3,3,2))

print(result)

執行以上代碼輸出結果為:

使用 dimnames 參數來設定各個次元的名稱::

column.names <- c("COL1","COL2","COL3")

row.names <- c("ROW1","ROW2","ROW3")

matrix.names <- c("Matrix1","Matrix2")

# 建立數組,并設定各個次元的名稱

result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,matrix.names))

如果想擷取數組元素,可以通過使用元素的列索引和行索引,類似坐标形式。

result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names, column.names, matrix.names))

# 顯示數組第二個矩陣中第三行的元素

print(result[3,,2])

# 顯示數組第一個矩陣中第一行第三列的元素

print(result[1,3,1])

# 輸出第二個矩陣

print(result[,,2])

由于數組是由多個次元的矩陣組成,是以我們可以通過通路矩陣的元素來通路數組元素。

array1 <- array(c(vector1,vector2),dim = c(3,3,2))

vector3 <- c(9,1,0)

vector4 <- c(6,0,11,3,14,1,2,6,9)

array2 <- array(c(vector1,vector2),dim = c(3,3,2))

# 從數組中建立矩陣

matrix1 <- array1[,,2]

matrix2 <- array2[,,2]

# 矩陣相加

result <- matrix1+matrix2

另外我們可以使用 apply() 元素對數組元素進行跨次元計算,文法格式如下:

<b>x</b> 數組

<b>margin</b> 資料名稱

<b>fun</b> 計算函數

以下我們使用 apply() 函數來計算數組兩個矩陣中每一行對數字之和。

new.array &lt;- array(c(vector1,vector2),dim = c(3,3,2))

print(new.array)

# 計算數組中所有矩陣第一行的數字之和

result &lt;- apply(new.array, c(1), sum)

上一篇: R 清單
下一篇: R 矩陣