messenger_logo
Liên hệ qua Messenger
SciEco

[BLOG 004] Làm sạch dữ liệu với thư viện tidyr

KH
Khanh Hoang
Ngày viết: 21/09/2023

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

Bài viết khác
1. Giới thiệu Phân cụm đồ thị (K-means Clustering) là quá trình phân chia hoặc tách biệt dữ liệu theo các nhóm dựa trên các đặc điểm chung sau đó được biểu thị qua một đồ thị. Phù hợp với những công việc cần phân khúc các tệp khách hàng trong thương mại, phân tích thị trường. Điều này giúp các công ty hiểu rõ hơn về sở thích và nhu cầu của từng nhóm, qua đó đưa ra chiến lược marketing phù hợp. Trong thuật toán phân cụm, K-means là một thuật toán phân cụm đơn giản và phổ biến trong học máy (machine learning) để phân cụm các điểm dữ liệu thành các nhóm riêng biệt dựa trên các đặc điểm của chúng. Thuật toán này dùng để chia dữ liệu thành các nhóm dựa trên khoảng cách giữa các điểm dữ liệu với nhau. 2. Ta cài đặt những thư viện sau
Trong thời đại của số hóa và khoa học dữ liệu lên ngôi, khả năng phân tích, giải mã và trích xuất thông tin hữu ích từ khối lượng dữ liệu khổng lồ là một kỹ năng không thể thiếu để giúp bạn thích nghi với yêu cầu của công việc! Đặc biệt, với việc làm chủ STATA, phần mềm phân tích dữ liệu có giao diện thân thiện và khả năng xử lý dữ liệu mạnh mẽ sẽ là công cụ đắc lực cho bạn. Để có thể giúp bạn chinh phục STATA, SciEco ở đây để mang đến cho bạn khóa học STATA đầy hấp dẫn: Nội dung khóa học chi tiết: Bài 1: Giới thiệu về STATA và VES
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội