Science for Economics.

[BLOG 004] Làm sạch dữ liệu với thư viện tidyr
Cover Image for [BLOG 004] Làm sạch dữ liệu với thư viện tidyr
Khanh Hoang
Khanh Hoang
Ngày viết:
R

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

Comments:


    Nội dung khác.