ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 陣列 ### 利用 rbind、cbind 與 array 函數建立陣列 陣列可視為多維度的向量變數,跟向量一樣,所有陣列元素的資料屬性必須一致。 ~~~ > x <- c(1, 2, 3) > y <- c(4, 5, 6) > rbind(x, y) # rbind 是利用 row(橫) 合併。 [,1] [,2] [,3] x 1 2 3 y 4 5 6 > cbind(x, y) # cbind 是利用 column(直) 合併。 x y [1,] 1 4 [2,] 2 5 [3,] 3 6 > array(x,c(1,3)) # c(1,3) 代表產生 1 x 3 陣列 [,1] [,2] [,3] [1,] 1 2 3 > array(x,c(2,3)) # c(2,3) 代表產生 2 x 3 陣列 [,1] [,2] [,3] [1,] 1 3 2 [2,] 2 1 3 > array(x,c(3,3)) # c(3,3) 代表產生 3 x 3 陣列 [,1] [,2] [,3] [1,] 1 1 1 [2,] 2 2 2 [3,] 3 3 3 ~~~ ### 透過指標提取資料 陣列與向量相同,可以透過指標或名稱選取陣列的元素。 ~~~ > x <- c(1, 2, 3) > y <- c(4, 5, 6) > z = rbind(x, y) > z [,1] [,2] [,3] x 1 2 3 y 4 5 6 > z[,1] # 選取第一行(column、直) x y 1 4 > z[1,] # 選取第一列(row、橫) [1] 1 2 3 > z[1,1:2] # 選取第一列第一到二行 [1] 1 2 ~~~ ### 基本相關函數 - 陣列加減乘除 - length:計算陣列中的所有元素個數。 - dim:列出維度資訊 - ncol、nrow:計算(column、直) 或 (row、橫) 個數。 - aperm:將陣列轉置 ~~~ > x <- c(1, 2, 3) > y <- c(4, 5, 6) > z = rbind(x, y) > z [,1] [,2] [,3] x 1 2 3 y 4 5 6 > z + z [,1] [,2] [,3] x 2 4 6 y 8 10 12 > z - 2*z [,1] [,2] [,3] x -1 -2 -3 y -4 -5 -6 > z * z # 相對應的陣列元素相乘 [,1] [,2] [,3] x 1 4 9 y 16 25 36 > z / z # 相對應的陣列元素相除 [,1] [,2] [,3] x 1 1 1 y 1 1 1 > length(z) [1] 6 > dim(z) # 前者是 row,後者是 column。 [1] 2 3 > ncol(z) [1] 3 > nrow(z) [1] 2 > aperm(z) # 等同是從 rbind 轉成 cbind x y [1,] 1 4 [2,] 2 5 [3,] 3 6 ~~~