Rate this post

Trong bài này, chúng ta sẽ nghiên cứu các kiểu cấu trúc dữ liệu khác nhau trong lập trình R. Chúng tôi cũng sẽ hiểu việc sử dụng và triển khai chúng với sự trợ giúp của các ví dụ.

Không lãng phí thời gian, chúng ta hãy nhanh chóng bắt đầu.

Giới thiệu về cấu trúc dữ liệu trong R

Trong bất kỳ ngôn ngữ lập trình nào, nếu bạn đang lập trình, bạn cần sử dụng các biến khác nhau để lưu trữ các dữ liệu khác nhau. Hơn nữa, các biến được dành riêng trong một vị trí bộ nhớ để lưu trữ các giá trị. Ngoài ra, điều này ngụ ý rằng, một khi bạn tạo một biến, bạn sẽ dự trữ một số vùng trong bộ nhớ. Hơn nữa, cấu trúc dữ liệu là cách duy nhất để sắp xếp dữ liệu để nó có thể được sử dụng hiệu quả trên máy tính.

Nếu chúng ta thấy trái ngược với các ngôn ngữ lập trình khác nhau như C và Java, R không có các biến được khai báo dưới dạng một số kiểu dữ liệu. Hơn nữa, các biến được chỉ định với đối tượng R và dạng tri thức của đối tượng R trở thành kiểu dữ liệu của biến. Có nhiều loại R-object. Những cái được sử dụng phổ biến là:

  • Vector
  • Matrix
  • Array
  • Lists
  • Data Frames

Bây giờ, chúng ta sẽ thảo luận ngắn gọn về từng đối tượng R này.

Vectơ R

Vector là cấu trúc dữ liệu cơ bản nhất trong ngôn ngữ lập trình R. Nó có hai phần: Vectơ nguyên tử và Danh sách. Chúng có ba thuộc tính chung:

  • Gõ hàm – nó thực sự là gì?
  • Hàm độ dài – nó chứa bao nhiêu phần tử.
  • Hàm thuộc tính – siêu dữ liệu tùy ý bổ sung.

Các yếu tố này có nhiều loại khác nhau. Ví dụ, các vectơ nguyên tử phải cùng loại. Ngược lại, các phần tử có trong danh sách có thể có các kiểu dữ liệu khác nhau. Chúng ta đã thảo luận  mọi khái niệm về Danh sách R trong bài viết trước của chúng ta, ở đây chúng ta sẽ chỉ hiểu về Vectơ nguyên tử.

Có bốn loại Vectơ nguyên tử R phổ biến:

  • Kiểu dữ liệu số
  • Kiểu dữ liệu số nguyên
  • Kiểu dữ liệu ký tự
  • Kiểu dữ liệu lôgic

Ma trận R

Trước hết, chúng ta sẽ thảo luận về ma trận chính xác trong cấu trúc dữ liệu trong R có nghĩa là gì. Ma trận là một tập dữ liệu hình chữ nhật hai chiều và do đó nó có thể được tạo bằng cách sử dụng đầu vào vectơ cho hàm ma trận. Ngoài ra, ma trận là một tập hợp các số được sắp xếp thành một số hàng và cột cố định. Thông thường, các con số là số thực. Bằng cách sử dụng một hàm ma trận, chúng ta có thể tái tạo biểu diễn bộ nhớ của ma trận trong R. Do đó, các phần tử dữ liệu phải có cùng kiểu cơ bản.

> mat1 <- matrix(1:4, nrow = 2, ncol = 2)
> mat1
> mat2 <- matrix(4:7, nrow = 2, ncol = 2)
> mat2

Chúng ta có thể truy cập phần tử hiện diện ở hàng thứ m và cột thứ n như sau:

> mat1[1,2]  
> mat2[2,1]

Đầu ra:

Chúng ta cũng có thể trích xuất toàn bộ hàng thứ m và hàng thứ n một cách riêng biệt như sau:

> mat1[2, ]
> mat1[, 2]  

Sử dụng ma trận

Phương pháp giải các ma trận:

  1. Cộng

Ngoài hai ma trận, chúng tôi thêm các số vào các vị trí phù hợp:

mat1 + mat2

Đầu ra:

  1. Trừ

Trong phép trừ hai ma trận, chúng tôi trừ các số ở các vị trí phù hợp:

 mat1 - mat2      #Author websitehcm
  1. Nhân với một hằng số

Chúng ta có thể nhân với một số giá trị không đổi như vậy:

4 * mat1   
  1. Chia

Trong phép chia hai ma trận, chia các số ở các vị trí phù hợp

(mat1/mat2)
  1. Hoán vị

Chuyển vị của ma trận là ma trận có các hàng và cột được hoán đổi, chúng ta có thể tìm chuyển vị của ma trận bằng hàm t ():

t(mat1)
  1. Ma trận đơn vị

Chúng ta có thể tìm ma trận đơn vị nxn bằng cách sử dụng hàm Diag (n).

> diag(4)  

Ứng dụng của ma trận

  • Ma trận được sử dụng để thực hiện các cuộc khảo sát địa chất . Chúng ta có thể biểu diễn thông tin dưới dạng ma trận có thể được sử dụng để vẽ đồ thị, thực hiện các phép toán thống kê, v.v.
  • Để đại diện cho dữ liệu trong thế giới thực giống như đặc điểm dân số của mọi người. Chúng là phương pháp biểu diễn tốt nhất để vẽ những điều khảo sát thông thường.
  • Trong robot và tự động hóa, ma trận là yếu tố tốt nhất cho các chuyển động của robot .
  • Ma trận được sử dụng để tính toán tổng sản phẩm quốc nội trong kinh tế học. Do đó, nó giúp ích cho việc tính toán hiệu quả sản phẩm hàng hóa.
  • Trong các ứng dụng dựa trên máy tính, ma trận đóng một vai trò quan trọng trong việc chiếu hình ảnh ba chiều lên màn hình hai chiều tạo ra các chuyển động có vẻ thực tế.
  • Trong các ứng dụng vật lý liên quan, ma trận có thể được áp dụng trong nghiên cứu mạch điện .

Mảng R

Trong Lập trình R, mảng là cấu trúc Dữ liệu nhiều chiều. Trong một mảng, dữ liệu được lưu trữ dưới dạng ma trận, hàng và cũng như trong cột. Chúng ta có thể sử dụng mức ma trận, chỉ số hàng và chỉ số cột để truy cập các phần tử của ma trận.

Mảng trong R là các đối tượng dữ liệu có thể lưu trữ dữ liệu trong nhiều hơn hai chiều. Một mảng được tạo bằng cách sử dụng hàm array () . Chúng ta có thể sử dụng vectơ làm đầu vào. Để tạo một mảng, chúng ta có thể sử dụng các giá trị này trong tham số dim.

Ví dụ:

Trong ví dụ sau, chúng ta sẽ tạo một mảng trong R gồm hai ma trận 3 × 3, mỗi ma trận 3 hàng và 3 cột.

# Tạo hai vectơ có độ dài khác nhau.

> vec1 <- c(1,2,4)   
> vec2 <- c(15,17,27,3,10,11)
> output <- array(c(vec1,vec2),dim = c(3,3,2))
> output

Đặt tên cho các 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 tham số dimnames.

# Tạo hai vectơ có độ dài khác nhau.

vec1 <- c(1,2,4)
vec2 <- c(15,17,27,3,10,11)
column_names <- c("col1″,"col2″,"col3")
row_names <- c("row1″,"row2″,"row3")
matrix_names <- c("Mat1″,"Mat2")

# Lấy các vectơ này làm đầu vào cho mảng.

output <- array(c(vec1,vec2),dim = c(3,3,2),dimnames = list(row_names,column_names,
matrix_names))
output

Truy cập các phần tử mảng

# Chúng ta sẽ tạo hai vectơ có độ dài khác nhau.

vec1 <- c(1,2,4)
vec2 <- c(15,17,27,3,10,11)
row_names <- c("row1″,"row2″,"row3")
col_names <- c("col1″,"col2″,"col3")
matrix_names <- c("Mat1″,"Mat2")
output <- array(c(vec1,vec2),dim = c(3,3,2),dimnames = list(row_names,col_names,matrix_names))
output<b></b>
> output[3,,2] #Author DataFlair
> output[1,3,1] #Print the element in the 1st row and 3rd column of the 1st matrix
> output[,,2] #Print the 2nd Matrix

Thao tác với các phần tử mảng

Vì mảng được tạo thành từ các ma trận trong 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.

> vec1 <- c(1,2,3)        #Author   
> vec2 <- c(4,5,6,7,8,9)
> arr1 <- array(c(vec1,vec2),dim = c(3,3,2))
> vec3 <- c(3,2,1)
> vec4 <- c(9,8,7,6,5,4)
> arr2 <- array(c(vec3,vec4),dim = c(3,3,2))
> mat1 <- arr1[,,2]  #Creating Matrix out out array
> mat2 <- arr2[,,2]
> output <- mat1 + mat2
> output<b></b>

Tính toán trên R Phần tử Mảng

Chúng tôi sẽ sử dụng áp dụng () chức năng cho các tính toán trong một mảng trong R .

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.
  • Lề là tên của tập dữ liệu được sử dụng.
  • fun là hàm được áp dụng cho các phần tử của mảng.

Ví dụ :

Chúng tôi sử dụng hàm apply () bên dưới theo các cách khác nhau để 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.

> vec1 <- c(1,2,3)           
> vec2 <- c(4,5,6,7,8,9)
> array_new <- array(c(vec1,vec2),dim = c(3,3,2))
> array_new

> output <- apply(array_new, c(1), sum)
> output

Liệt kê trong R

Danh sách là các đối tượng chứa các phần tử thuộc các kiểu khác nhau – như chuỗi, số, vectơ và một danh sách khác bên trong chúng. Nói cách khác, danh sách là một vectơ chung chứa các đối tượng khác. Một danh sách được tạo bằng cách sử dụng hàm list ().

Ví dụ:

Biến x chứa các bản sao của ba vectơ n, s, b và một giá trị số 3.

> num_list = c(3,4,5)    #Author DataFlair
> char_list = c("a", "b", "c", "d", "e")
> logic_list = c(TRUE, TRUE, FALSE, TRUE)
> out_list = list(num_list, char_list, logic_list, 3)
> out_list

Data Frames trong R

Trước hết, chúng ta sẽ thảo luận về khái niệm khung dữ liệu đến từ đâu. Khái niệm này xuất phát từ thế giới của phần mềm thống kê được sử dụng trong nghiên cứu thực nghiệm. Nó thường đề cập đến dữ liệu dạng bảng: cấu trúc dữ liệu đại diện cho các trường hợp (hàng), mỗi trường hợp bao gồm số lượng quan sát hoặc đo lường (cột).

Khung dữ liệu được sử dụng để lưu trữ các bảng dữ liệu. Nó là một danh sách các vectơ có độ dài bằng nhau.

Ví dụ:

Biến df sau là khung dữ liệu chứa ba biến n, s, b.

> num_list = c(3,4,5)    #Author DataFlair
> char_list = c("a", "b", "c")
> logic_list = c(TRUE, FALSE, TRUE)
> data_frame = data.frame(num_list, char_list, logic_list)
> data_frame

Khung dữ liệu là một mảng. Không giống như một mảng, dữ liệu chúng ta lưu trữ trong các cột của khung dữ liệu có thể có nhiều kiểu khác nhau. Nghĩa là, một cột có thể là một biến số, một cột khác có thể là một hệ số và cột thứ ba có thể là một biến ký tự. Tất cả các cột phải có cùng độ dài.

Đặc điểm C của Khung dữ liệu:

  • Tên cột không được để trống.
  • Tên hàng phải là duy nhất.
  • Dữ liệu được lưu trữ trong một khung dữ liệu có thể là kiểu số, hệ số hoặc ký tự.
  • Mỗi cột phải chứa cùng một số mục dữ liệu.

Các tập dữ liệu được nhập trong R được lưu trữ dưới dạng khung dữ liệu theo mặc định.

Kết luận về các loại cấu trúc dữ liệu

Chúng ta đã tìm hiểu về tất cả các loại cấu trúc dữ liệu trong Lập trình R cùng với việc sử dụng, triển khai và ví dụ của chúng. Chúng tôi hy vọng bạn đã hiểu mọi khái niệm một cách thấu đáo.

Tuy nhiên, nếu bạn có bất kỳ nghi ngờ nào liên quan đến bất kỳ chủ đề nào, hãy chia sẻ trong phần bình luận bên dưới.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now