logo xDuLieu.com

Trang trướcMa trận & MảngTrang sau

Ma trận (matrix) và mảng (array) được xem như sự mở rộng của vectơ. Nếu ta xem vectơ như dữ liệu 1 chiều thì ma trận là dữ liệu hai chiều, và mảng là dữ liệu n chiều.

Khái niệm "Ma trận"

 

Ma trận có thể xem như một dạng bảng đặc biệt, nghĩa là cũng có nhiều dòng và nhiều cột. Tuy nhiên tất cả các dữ liệu đơn của ma trận đều có kiểu giống nhau. Điều này làm ý nghĩa của biến không còn quan trọng nữa vì ta có thể chuyển dòng thành cột và ngược lại. Sự hạn chế này làm cho ma trận kém thông dụng hơn nhiều so với bảng.


Tạo ma trận

 

Phương pháp thường dùng để tạo ma trận là sắp xếp một nhóm dữ liệu đơn có cùng kiểu (vectơ) vào các dòng và các cột bằng hàm matrix theo cú pháp:

ma_tran <- matrix(vector, so_dong, so_cot )

Thí dụ như :

mt1 <- matrix(1:24, 6, 4)

Kết quả thể hiện trên khung Tương tác như sau :

> mt1
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 2 8 14 20 [3,] 3 9 15 21
[4,] 4 10 16 22
[5,] 5 11 17 23
[6,] 6 12 18 24

Ta có thể vắn tắt hơn bằng cách bỏ qua số cột:

mt1 <- matrix(1:24, 6)

Hay bỏ qua số dòng và thêm đối số ncolnhư câu lệnh:

mt1 <- matrix(1:24, ncol = 4)

Cả 3 cách trên đều đưa đến cùng một kết quả.

Khi ta dùng hàm matrix để xây dựng ma trận, theo mặc định, cột 1 sẽ được tạo lập đầu tiên từ dòng thứ nhất đến dòng cuối cùng, sau đó đến cột 2, ... cho đến cột cuối cùng. Kiểu thành lập ma trận này được gọi là kiểu xây dựng theo cột (by column). khi ấy tùy chọn byrow = FALSE. Tuy nhiên ta cũng có thể làm khác đi bằng cách xây dựng theo dòng (by row): dòng 1 từ cột đầu tiên đến cột cuối cùng, rồi đến dòng 2, ... đến dòng cuối. Khi ấy ta đặt tùy chọn byrow = TRUE.

Thí dụ ta tạo vectơ gồm 20 phần tử :

vec <- seq(10, 48, 2)

Sẵp xếp 20 phần tử này thành ma trận có 5 cột theo dòng bằng câu lệnh:

mt2 <- matrix(vec, 4, byrow = TRUE)

Kết quả hiện ra trên khung Tương tác như sau :

> mt2
[,1] [,2] [,3] [,4] [,5]
[1,] 10 12 14 16 18 [2,] 20 22 24 26 28
[3,] 30 32 34 36 38
[4,] 40 42 44 46 48

Mảng

 

Mảng là sự mở rộng hơn nữa của vectơ và ma trận, trong đó số chiều có thể lớn hơn 2. Điều đó nghĩa là tất cả dữ liệu đơn của mảng có kiểu dữ liệu giống nhau. Do đó có một số tính chất của vectơ và ma trận cũng có thể áp dụng cho mảng: tạo mảng bằng các dữ liệu có chiều ít hơn với hàm array, sắp xếp các dữ liệu này theo thứ tự từ chiều cuối cùng đi dần lên, ...

Nói chung, trong xử lý dữ liệu, mảng không có nhiều ứng dụng so với vectơ và ma trận.



Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 25/11/2018

R