1. Giới thiệu gói tidyr
tidyr
là một thư viện quan trọng trong Tidyverse, được tạo ra để làm cho dữ liệu dễ dàng để làm sạch và biến đổi. Nó cung cấp các công cụ mạnh mẽ để tổ chức và biến đổi dữ liệu thành dạng phù hợp với phân tích dữ liệu
1# Load thư viện tidyr
2library(tidyr)
3
4# Tạo dữ liệu mẫu
5data <- data.frame(
6 Student = c("Alice", "Bob", "Charlie"),
7 Math = c(90, 88, 76),
8 Science = c(85, 92, 78),
9 English = c(88, 84, 80)
10)
2. Lệnh gather
Lệnh gather
trong tidyr
được sử dụng để biến đổi dữ liệu từ dạng rộng (wide) thành dạng dài (long). Nó cho phép bạn chuyển các cột thành các hàng, tổ chức dữ liệu theo cách linh hoạt hơn để tiện cho việc phân tích, đặc biệt đối với đầu vào của các mô hình hồi quy, thường sẽ yêu cầu dữ liệu ở dạng dài (long).
1# 1. Sử dụng gather để biến đổi dữ liệu từ dạng (wide) thành dạng dài (long)
2gathered_data <- gather(data, Subject, Score, -Student)
3
4# Kết quả sau khi sử dụng gather:
5# Student Subject Score
6# 1 Alice Math 90
7# 2 Bob Math 88
8# 3 Charlie Math 76
9# 4 Alice Science 85
10# 5 Bob Science 92
11# 6 Charlie Science 78
12# 7 Alice English 88
13# 8 Bob English 84
14# 9 Charlie English 80
3. Lệnh spread
Ngược lại với gather
, lệnh spread
cho phép bạn biến đổi dữ liệu từ dạng dài thành dạng rộng. Nó giúp bạn tạo ra các bảng dữ liệu có dạng phù hợp với việc trực quan hóa hoặc tính toán dễ dàng hơn.
1# 2. Sử dụng spread để biến đổi dữ liệu từ dạng dài thành dạng rộng
2spread_data <- spread(gathered_data, Subject, Score)
3
4# Kết quả sau khi sử dụng spread:
5# Student English Math Science
6# 1 Alice 88 90 85
7# 2 Bob 84 88 92
8# 3 Charlie 80 76 78
4. Lệnh separate
Khi bạn có một cột chứa thông tin kết hợp (ví dụ: ngày và thời gian trong một cột), lệnh separate
giúp bạn tách chúng thành nhiều cột riêng biệt. Điều này làm cho việc xử lý và phân tích dữ liệu dễ dàng hơn.
1# 3. Sử dụng separate để tách cột Student thành First Name và Last Name
2separated_data <- separate(data, Student, into = c("First Name", "Last Name"), sep = " ")
3
4# Kết quả sau khi sử dụng separate:
5# First Name Last Name Math Science English
6# 1 Alice Johnson 90 85 88
7# 2 Bob Smith 88 92 84
8# 3 Charlie Jackson 76 78 80
5. Lệnh unite
Ngược lại với separate
, lệnh unite
cho phép bạn kết hợp nhiều cột thành một cột duy nhất. Điều này hữu ích khi bạn muốn tạo ra một cột mới có dạng tổng hợp từ các thông tin chi tiết.
Như vậy, tidyr
là một thư viện mạnh mẽ và linh hoạt cho việc làm sạch và biến đổi dữ liệu trong R. Bằng cách sử dụng các lệnh như gather
, spread
, separate
, và unite
, bạn có thể dễ dàng tùy chỉnh dữ liệu của mình để phù hợp với nhu cầu phân tích và trực quan hóa dữ liệu của bạn.
1# 4. Sử dụng unite để kết hợp cột First Name và Last Name thành cột Full Name
2united_data <- unite(separated_data, "Full Name", "First Name", "Last Name", sep = " ")
3
4# Kết quả sau khi sử dụng unite:
5# Full Name Math Science English
6# 1 Alice Johnson 90 85 88
7# 2 Bob Smith 88 92 84
8# 3 Charlie Jackson 76 78 80