Nhập, xuất và chuyển đổi dữ liệu trong R

Nếu sử dụng R để phân tích số liệu, việc đọc dữ liệu từ nhiều ứng dụng khác nhau như SPSS, SAS, Excel, Libreoffice Calc… là cần thiết. Tuy vậy, qúa trình này không phải khi nào cũng suôn sẻ. Vấn đề đôi khi là câu lệnh phức tạp, lúc khác là tính thiếu chính xác của qúa trình đọc dữ liệu.

Để đơn giản hơn cho qúa trình đọc xuất dữ liệu, bài viết giới thiệu gói lệnh “rio”. RIO được giới thiệu sẽ nhan hơn, đơn giản với ít các gói lệnh phụ thuộc hơn. Qúa trình đọc và xuất dữ liệu có tthể thực hiện qua các lệnh import() hoặc export(). Do vậy, ngay cả với người mới sử dụng cũng có thể dễ dàng đọc và sử dụng.

Bên cạnh đó, RIO hỗ trợ người sử dụng có thể dùng R như một ứng dụng độc lập để chuyển đổi giữa các dạng dữ liệu. Hàm convert có thể được kết hợp cùng hàm import hoặc export để thực hiện việc chuyển dữ liệu.

Các định dạng được hỗ trợ

RIO hỗ trợ rất nhiều định dạng phổ biến. Để cài đặt tất cả định dạng được hỗ trợ, câu lệnh sau có thể được sử dụng:

install_formats ()

Danh sách định dạng hỗ trợ được thể hiện theo bảng dưới đây:

Mặc định
Comma-separated data .csv data.table data.table Yes
Pipe-separated data .psv data.table data.table Yes
Tab-separated data .tsv data.table data.table Yes
SAS .sas7bdat haven haven Yes
SPSS .sav haven haven Yes
Stata .dta haven haven Yes
SAS XPORT .xpt haven Yes
SPSS Portable .por haven Yes
Excel .xls readxl Yes
Excel .xlsx readxl openxlsx Yes
R syntax .R base base Yes
Saved R objects .RData, .rda base base Yes
Serialized R objects .rds base base Yes
Epiinfo .rec foreign Yes
Minitab .mtp foreign Yes
Systat .syd foreign Yes
“XBASE” database files .dbf foreign foreign Yes
Weka Attribute-Relation File Format .arff foreign foreign Yes
Data Interchange Format .dif utils Yes
Fortran data no recognized extension utils Yes
Fixed-width format data .fwf utils utils Yes
gzip comma-separated data .csv.gz utils utils Yes
CSVY (CSV + YAML metadata header) .csvy csvy csvy No
Feather R/Python interchange format .feather feather feather No
Fast Storage .fst fst fst No
JSON .json jsonlite jsonlite No
Matlab .mat rmatio rmatio No
OpenDocument Spreadsheet .ods readODS readODS No
HTML Tables .html xml2 xml2 No
Shallow XML documents .xml xml2 xml2 No
YAML .yml yaml yaml No
Clipboard default is tsv clipr clipr No
Google Sheets as Comma-separated data

Nhập dữ liệu

library("rio")

car1 <- import("mtcars.csv")

car2 <- import("mtcars.rds")

Nếu dữ liệu cần đọc không có tên mở rộng cụ thể (ví dụ: .csv), ta có thể khai báo qua câu lệnh sau:

car3 <- import("mtcars_noext", format = "csv")

Câu lệnh import_list() có thể được sử dụng để đọc một tập hợp nhiều kiểu dữ liệu.

Xuất dữ liệu

Hiện tại, RIO hỗ trợ các định dạng đầu ra sau: csv, rds, dta

library("rio)

export(mtcars, "mtcars.csv")

export(mtcars, "mtcars.rds")

export(mtcars, "mtcars.dta")

Chuyển đổi dữ liệu

Dùng lệnh convert() rất đơn giản. Ví dụ:

# Tạo tệp để chuyển

export(mtcars, "mtcars.dta")

# Chuyển dạng STATA sang SPSS

convert("mtcars.dta", "mtcars.sav")

Thông tin chi tiết về gói lệnh và các lệnh mở rộng có thể được tìm hiểu thêm theo đường dẫn dưới đây:

https://cran.r-project.org/web/packages/rio/vignettes/rio.html

Soulextremely

Comments are closed.