Menu
CoddyTech

Hiểu về cấu trúc dữ liệu

Bài học 1 trên 14 trong khóa học Thao tác dữ liệu trong R của Coddy.

Trong R, cấu trúc dữ liệu (data structures) đóng vai trò nền tảng trong việc tổ chức và thao tác với dữ liệu. Hãy cùng tìm hiểu ba cấu trúc dữ liệu cơ bản: véc-tơ (vectors), ma trận (matrices) và khung dữ liệu (data frames).

1. Véc-tơ

Véc-tơ là mảng (array) một chiều, có thể chứa các phần tử cùng kiểu dữ liệu.


# Tạo vectơ số
numbers <- c(1, 2, 3, 4, 5)

# Tạo vectơ ký tự
fruits <- c("apple", "banana", "cherry")

# Truy cập các phần tử
print(numbers[2])  # Đầu ra: 2
print(fruits[1:2])  # Đầu ra: "apple" "banana"

2. Ma trận

Ma trận là mảng hai chiều gồm các hàng và cột, chứa các phần tử cùng kiểu dữ liệu.


# Tạo ma trận
mat <- matrix(1:6, nrow = 2, ncol = 3)

# Truy cập các phần tử
print(mat[1, 2])  # Trả về phần tử ở hàng thứ 1 và cột thứ 2 (Đầu ra: 3)
print(mat[, 1])   # Trả về cột thứ 1 dưới dạng vectơ (Đầu ra: 1 2)

3. Khung dữ liệu

Khung dữ liệu là cấu trúc dạng bảng, có thể chứa các kiểu dữ liệu khác nhau trong mỗi cột.


# Tạo khung dữ liệu
df <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 35),
  city = c("New York", "London", "Paris")
)

# Truy cập các phần tử
print(df$name)        # Trả về cột có tên "name" (Đầu ra: "Alice" "Bob" "Charlie")
print(df[2, "age"])   # Đầu ra: 30
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

challenge icon

Thử thách

Dễ

Thực hiện các thao tác sau với khung dữ liệu:

  1. Thêm một cột mới có tên "height_m" để chuyển đổi chiều cao từ centimét sang mét
  2. Tính và in ra tuổi trung bình
  3. In ra tên của người cao nhất (tính bằng mét)

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con, n = 3))

# Xử lý dữ liệu đầu vào
data_list <- strsplit(input_data, ",")
names <- sapply(data_list, function(x) x[1])
ages <- as.numeric(sapply(data_list, function(x) x[2]))
heights <- as.numeric(sapply(data_list, function(x) x[3]))

# Tạo khung dữ liệu ban đầu
df <- data.frame(
  name = names,
  age = ages,
  height = heights
)

# TODO: Viết code bên dưới
# 1. Thêm cột mới 'height_m'
# 2. Tính và in ra tuổi trung bình
# 3. In ra tên người cao nhất (tính bằng mét)

# Chỗ giữ chỗ cho đầu ra
cat("Average age:", avg_age, "\n")
cat("Tallest person:", tallest_person)

Tất cả bài học trong Thao tác dữ liệu trong R

Tự luyện tập: Trình biên dịch R online