R - Mảng
Mảng là đối tượng dữ liệu R có thể lưu trữ dữ liệu trong nhiều hơn hai chiều. Ví dụ - Nếu chúng ta tạo một mảng có kích thước (2, 3, 4) thì nó sẽ tạo ra 4 ma trận hình chữ nhật, mỗi ma trận có 2 hàng và 3 cột. Mảng chỉ có thể lưu trữ kiểu dữ liệu.
Một mảng được tạo bằng cách sử dụng array()chức năng. Nó nhận vectơ làm đầu vào và sử dụng các giá trị trongdim tham số để tạo một mảng.
Thí dụ
Ví dụ sau tạo một mảng hai ma trận 3x3, mỗi ma trận có 3 hàng và 3 cột.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2))
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
, , 1
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
Đặt tên cột và hàng
Chúng ta có thể đặt tên cho các hàng, cột và ma trận trong mảng bằng cách sử dụng dimnames tham số.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,
matrix.names))
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
, , Matrix1
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
, , Matrix2
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
Truy cập các phần tử mảng
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,
column.names, matrix.names))
# Print the third row of the second matrix of the array.
print(result[3,,2])
# Print the element in the 1st row and 3rd column of the 1st matrix.
print(result[1,3,1])
# Print the 2nd Matrix.
print(result[,,2])
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
COL1 COL2 COL3
3 12 15
[1] 13
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
Thao tác phần tử mảng
Vì mảng được tạo thành các ma trận theo nhiều chiều, các phép toán trên các phần tử của mảng được thực hiện bằng cách truy cập các phần tử của ma trận.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
array1 <- array(c(vector1,vector2),dim = c(3,3,2))
# Create two vectors of different lengths.
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))
# create matrices from these arrays.
matrix1 <- array1[,,2]
matrix2 <- array2[,,2]
# Add the matrices.
result <- matrix1+matrix2
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[,1] [,2] [,3]
[1,] 10 20 26
[2,] 18 22 28
[3,] 6 24 30
Tính toán trên các phần tử mảng
Chúng ta có thể thực hiện các phép tính trên các phần tử trong một mảng bằng cách sử dụng apply() chức năng.
Cú pháp
apply(x, margin, fun)
Sau đây là mô tả về các tham số được sử dụng:
x là một mảng.
margin là tên của tập dữ liệu được sử dụng.
fun là hàm được áp dụng trên các phần tử của mảng.
Thí dụ
Chúng tôi sử dụng hàm apply () bên dưới để tính tổng các phần tử trong các hàng của một mảng trên tất cả các ma trận.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
new.array <- array(c(vector1,vector2),dim = c(3,3,2))
print(new.array)
# Use apply to calculate the sum of the rows across all the matrices.
result <- apply(new.array, c(1), sum)
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
, , 1
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
[1] 56 68 60