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: 30Bà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 độ.
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 độ.
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 độ.
Thử thách
DễThực hiện các thao tác sau với khung dữ liệu:
- 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
- Tính và in ra tuổi trung bình
- 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
1Cơ bản về dữ liệu
Hiểu về cấu trúc dữ liệuLập chỉ mục khung dữ liệuLấy tập con dữ liệuChuyển đổi kiểu dữ liệuToán tử pipe trong R3Định hình lại dữ liệu
Định dạng rộng sang định dạng dàiĐịnh dạng dài sang định dạng rộngXử lý dữ liệu thiếuTự luyện tập: Trình biên dịch R online