Chuyển vị ma trận là một thao tác xử lý dữ liệu thường gặp trong môi trường lập trình R. Trong hướng dẫn này, tôi sẽ chỉ bạn cách chuyển vị ma trận hiệu quả trong R, giới thiệu một số phương pháp để thực hiện tác vụ này. Hãy bắt đầu nhé!
Câu trả lời nhanh: Cách chuyển vị ma trận trong R
Nếu bạn đang vội, đây là cách nhanh nhất để chuyển vị ma trận trong R: dùng hàm t(). Hàm t() là một phần của base R và cung cấp cách chuyển vị tức thì cho ma trận. Đây là một ví dụ đơn giản:
# Creating a sample matrix
my_matrix <- matrix(1:6, nrow =2, ncol =3)
print(my_matrix)Được hỗ trợ bởi
Chuyển vị ma trận là hoán đổi các hàng và cột của nó, biến dữ liệu theo hàng thành dữ liệu theo cột và ngược lại. Thao tác này thường được dùng trong xử lý dữ liệu để tái cấu trúc bộ dữ liệu, giúp phù hợp hơn cho các phân tích hoặc trực quan hóa cụ thể. Chẳng hạn, hãy xem xét một ma trận chứa nhiệt độ hằng ngày cho các thành phố khác nhau. Chuyển vị khung dữ liệu này sẽ hoán đổi các hàng (ngày) với các cột (thành phố), từ đó có thể đơn giản hóa các bước tiếp theo như vẽ biểu đồ hoặc phân tích thống kê.
Ngày
New York
Lost Angeles
Chicago
Ngày 1
22
25
18
Ngày 2
20
28
21
Một bộ dữ liệu thời tiết mẫu ở 3 thành phố trước khi chuyển vị
Thành phố
Ngày 1
Ngày 2
New York
22
20
Los Angeles
25
28
Chicago
18
21
Một bộ dữ liệu thời tiết mẫu ở 3 thành phố sau khi chuyển vị
Ba phương pháp chuyển vị ma trận trong R
Với ma trận nhiệt độ hằng ngày cho các thành phố khác nhau, hãy khám phá cách chuyển vị ma trận này bằng nhiều phương pháp trong R.
Phương pháp #1: Chuyển vị ma trận trong R bằng Base R
Phương pháp đơn giản nhất để chuyển vị ma trận trong R là sử dụng hàm t() của base R, như đã minh họa ở trên. Cách này hiệu quả, trực tiếp và là lựa chọn ưu tiên khi cần chuyển vị nhanh mà không cần gói bổ sung.
# Assume that temparature_matrix is already predefined
print(temperature_matrix)Được hỗ trợ bởi
New_York Los_Angeles Chicago
Day 1222025
Day 2281821Được hỗ trợ bởi
# Transpose temperature_matrix
transposed_matrix <- t(temperature_matrix)
print(transposed_matrix)Được hỗ trợ bởi
Day 1 Day 2
New_York 2228
Los_Angeles 2018
Chicago 2521Được hỗ trợ bởi
Phương pháp #2: Chuyển vị ma trận trong R bằng tidyverse
tidyverse là một bộ công cụ mạnh mẽ trong R, giúp làm việc với dữ liệu hiệu quả và nhất quán. Mặc dù tidyverse thường dùng với data frame, bạn có thể chuyển đổi ma trận thành data frame rồi dùng tidyr để “chuyển vị” bằng cách xoay trục (pivot). Điều này đặc biệt hữu ích nếu bạn đã dùng tidyverse để phân tích dữ liệu.
library(tidyr)
library(dplyr)
library(tibble)# Converting the matrix to a data frame for tidyverse manipulation
temperature_df <- as.data.frame(temperature_matrix)# "Transposing" the matrix by converting to long then wide format
transposed_df <- temperature_df %>%
rownames_to_column(var ="Day")%>%
pivot_longer(-Day, names_to ="City", values_to ="Temperature")%>%
pivot_wider(names_from = City, values_from = Temperature)
print(transposed_df)Được hỗ trợ bởi
# A tibble: 2 × 4
Day New_York Los_Angeles Chicago
<chr><dbl><dbl><dbl>1 Day 12220252 Day 2281821Được hỗ trợ bởi
Phương pháp #3: Chuyển vị ma trận trong R bằng data.table
Tương tự cách tiếp cận với tidyverse, data.table có thể làm việc với data frame hoặc data table. Dưới đây là cách bạn có thể chuyển vị một ma trận bằng cách chuyển nó thành data table trước:
library(data.table)# Converting the matrix to a data.table
temperature_dt <- as.data.table(temperature_matrix, keep.rownames ="Day")# Transposing the matrix by melting and dcasting (similar to pivot_longer and pivot_wider)
transposed_dt <- melt(temperature_dt, id.vars ="Day")%>%
dcast(variable ~ Day, value.var ="value")
print(transposed_dt)Được hỗ trợ bởi
variable Day 1 Day 21: New_York 22282: Los_Angeles 20183: Chicago 2521Được hỗ trợ bởi
Adel là một nhà giáo dục Khoa học Dữ liệu, diễn giả, và Phó Chủ tịch phụ trách Truyền thông tại DataCamp. Adel đã phát hành nhiều khóa học và buổi đào tạo trực tiếp về phân tích dữ liệu, học máy và kỹ thuật dữ liệu. Anh đam mê lan tỏa kỹ năng dữ liệu và hiểu biết dữ liệu trong toàn tổ chức, cũng như những điểm giao thoa giữa công nghệ và xã hội. Anh có bằng Thạc sĩ Khoa học Dữ liệu và Phân tích Kinh doanh. Thời gian rảnh, bạn có thể bắt gặp anh vui đùa cùng chú mèo Louis.
Chuyển vị ma trận là một thao tác xử lý dữ liệu thường gặp trong môi trường lập trình R. Trong hướng dẫn này, tôi sẽ chỉ bạn cách chuyển vị ma trận hiệu quả trong R, giới thiệu một số phương pháp để thực hiện tác vụ này. Hãy bắt đầu nhé!
Câu trả lời nhanh: Cách chuyển vị ma trận trong R
Nếu bạn đang vội, đây là cách nhanh nhất để chuyển vị ma trận trong R: dùng hàm
t(). Hàmt()là một phần của base R và cung cấp cách chuyển vị tức thì cho ma trận. Đây là một ví dụ đơn giản:Chuyển vị là gì?
Chuyển vị ma trận là hoán đổi các hàng và cột của nó, biến dữ liệu theo hàng thành dữ liệu theo cột và ngược lại. Thao tác này thường được dùng trong xử lý dữ liệu để tái cấu trúc bộ dữ liệu, giúp phù hợp hơn cho các phân tích hoặc trực quan hóa cụ thể. Chẳng hạn, hãy xem xét một ma trận chứa nhiệt độ hằng ngày cho các thành phố khác nhau. Chuyển vị khung dữ liệu này sẽ hoán đổi các hàng (ngày) với các cột (thành phố), từ đó có thể đơn giản hóa các bước tiếp theo như vẽ biểu đồ hoặc phân tích thống kê.
Ngày
New York
Lost Angeles
Chicago
Ngày 1
22
25
18
Ngày 2
20
28
21
Một bộ dữ liệu thời tiết mẫu ở 3 thành phố trước khi chuyển vị
Thành phố
Ngày 1
Ngày 2
New York
22
20
Los Angeles
25
28
Chicago
18
21
Một bộ dữ liệu thời tiết mẫu ở 3 thành phố sau khi chuyển vị
Ba phương pháp chuyển vị ma trận trong R
Với ma trận nhiệt độ hằng ngày cho các thành phố khác nhau, hãy khám phá cách chuyển vị ma trận này bằng nhiều phương pháp trong R.
Phương pháp #1: Chuyển vị ma trận trong R bằng Base R
Phương pháp đơn giản nhất để chuyển vị ma trận trong R là sử dụng hàm
t()của base R, như đã minh họa ở trên. Cách này hiệu quả, trực tiếp và là lựa chọn ưu tiên khi cần chuyển vị nhanh mà không cần gói bổ sung.Phương pháp #2: Chuyển vị ma trận trong R bằng tidyverse
tidyverse là một bộ công cụ mạnh mẽ trong R, giúp làm việc với dữ liệu hiệu quả và nhất quán. Mặc dù tidyverse thường dùng với data frame, bạn có thể chuyển đổi ma trận thành data frame rồi dùng
tidyrđể “chuyển vị” bằng cách xoay trục (pivot). Điều này đặc biệt hữu ích nếu bạn đã dùngtidyverseđể phân tích dữ liệu.Phương pháp #3: Chuyển vị ma trận trong R bằng data.table
Tương tự cách tiếp cận với tidyverse,
data.tablecó thể làm việc với data frame hoặc data table. Dưới đây là cách bạn có thể chuyển vị một ma trận bằng cách chuyển nó thành data table trước:Lời kết
Chuyển vị ma trận là một kỹ năng nền tảng trong lập trình R. Dù bạn làm việc với base R, tidyr trong tidyverse, hay gói data.table, R cung cấp các lựa chọn linh hoạt để đáp ứng nhu cầu dữ liệu của bạn. Nếu muốn tìm hiểu thêm, hãy xem Cheat Sheet Reshaping Data với tidyr trong R, hoặc bắt đầu với Lộ trình Kỹ năng Data Manipulation in R.