Giới thiệu
Việc nhập dữ liệu vào R thường là bước đầu tiên trong hành trình phân tích dữ liệu. Tuy nhiên, nếu bạn đã làm việc với R một thời gian, bạn sẽ biết rằng nó có một chức năng khác nhau cho hầu hết các định dạng tệp. Ban đầu, điều này có thể khiến bạn cảm thấy bối rối—thậm chí là khó chịu—bởi vì bạn có thể nhầm lẫn các chức năng hoặc các tham số của chúng.
Tin tốt là, khi bạn đã biết chức năng và gói nào nên sử dụng cho các loại tệp khác nhau, quy trình trở nên mượt mà và đơn giản. Hướng dẫn này cung cấp một tài liệu tham khảo toàn diện về việc nhập dữ liệu vào R, bao gồm các định dạng tệp phổ biến nhất cùng với các ví dụ thực tiễn và mã.
Vì vậy, lần tới khi bạn thấy mình tìm kiếm “cách tải [loại tệp] vào R”, bạn sẽ có mọi thứ bạn cần ngay tại đây.
Chúng ta sẽ khám phá:
- Đọc tệp TXT, CSV, JSON, Excel
- Làm việc với dữ liệu từ SAS, SPSS, Stata, Matlab và Octave
- Nhập dữ liệu từ tệp HTML/XML
- Kết nối trực tiếp với cơ sở dữ liệu quan hệ qua ODBC
- Và cả một mẹo hữu ích để tải dữ liệu nhanh chóng, bất kỳ lúc nào.
Chuẩn bị Môi trường R của Bạn
Trước khi nhập dữ liệu, bạn nên thiết lập môi trường của mình một cách hợp lý.
Thiết lập Thư mục Làm việc
Hầu hết các tập dữ liệu được lưu trữ trong một thư mục dành riêng cho mỗi dự án. Bạn có thể yêu cầu R coi thư mục đó là thư mục làm việc của nó.
R
getwd() # kiểm tra thư mục làm việc hiện tại
setwd("") # thiết lập thư mục làm việc mới
Bằng cách này, bạn có thể sử dụng các đường dẫn tệp tương đối thay vì nhập các đường dẫn tuyệt đối dài mỗi lần.
Dọn dẹp Môi trường
Môi trường R của bạn thường chứa các đối tượng còn sót lại từ các phiên trước, điều này có thể gây ra lỗi. Để bắt đầu mới, hãy chạy:
R
rm(list = ls())
Điều này sẽ xóa tất cả các đối tượng, hàm và biến. Ngoài ra, bạn có thể chọn không lưu không gian làm việc khi đóng R.
💡 Mẹo Chuyên Nghiệp: Luôn bắt đầu với một môi trường sạch sẽ để nhập dữ liệu một cách mượt mà và giảm bớt đau đầu trong việc gỡ lỗi.
Nhập Tệp TXT, CSV và Tệp Phân cách
Đọc Tệp Văn bản
Các tệp văn bản thường chứa dữ liệu được phân tách bởi các tab, dấu phẩy hoặc dấu chấm phẩy. Dưới đây là một ví dụ đơn giản về một tệp phân cách bằng tab:
Category V1 V2
A 3 2
B 5 6
B 2 3
A 4 8
Sử dụng read.table() để nhập các tệp như vậy:
R
df <- read.table("", header = TRUE, sep = "\\t")
Bạn có thể điều chỉnh tham số sep cho các dấu phân cách khác.
Đọc Tệp CSV
Các tệp CSV có thể được phân cách bằng dấu phẩy (,) hoặc dấu chấm phẩy (;). R cung cấp các hàm bọc quanh read.table() để tiện lợi:
R
df <- read.csv("") # cho tệp phân cách bằng dấu phẩy
df <- read.csv2("") # cho tệp phân cách bằng dấu chấm phẩy
Cả hai hàm này đều hoạt động giống như read.table() nhưng đi kèm với các mặc định được điều chỉnh cho mỗi định dạng.
Mẹo Sao Chép-Nhúng Nhanh
Cần một cách nhanh chóng để thử nghiệm hoặc phân tích một số dữ liệu? Sao chép dữ liệu vào clipboard và chạy:
R
df <- read.table("clipboard", header = TRUE)
Nó có thể không luôn được định dạng hoàn hảo, nhưng nó rất tuyệt cho phân tích nhanh chóng.
Sử dụng Gói để Nhập Dữ liệu
Đối với các định dạng tệp phức tạp hơn, bạn sẽ cần các gói chuyên biệt.
Cài đặt và tải các gói với:
R
install.packages("")
library("")
Đọc Tệp JSON
Sử dụng gói rjson:
R
install.packages("rjson")
library(rjson)
# Từ tệp
jsonData <- fromJSON(file = "")
# Từ URL
jsonData <- fromJSON(file = "")
Dữ liệu JSON được nạp dưới dạng danh sách. Để chuyển đổi nó thành một data frame:
R
jsonDF <- as.data.frame(jsonData)
Nhập Dữ liệu từ XML và Bảng HTML
Đối với dữ liệu XML và HTML, gói XML hoạt động tốt nhất:
R
library(XML)
library(RCurl)
# Phân tích tệp XML
xmlData <- xmlTreeParse("")
# Chuyển đổi thành data frame
xmlDF <- xmlToDataFrame("")
Đối với các bảng HTML:
R
htmlData <- readHTMLTable(getURL(""))
Đọc Tệp Excel
Có một số tùy chọn—XLConnect, XLSX, gdata—nhưng readxl là đơn giản và nhanh nhất.
R
install.packages("readxl")
library(readxl)
# Đọc trang đầu tiên
df <- read_excel("")
# Đọc theo tên hoặc chỉ số trang
df <- read_excel("", sheet = "Sheet3")
df <- read_excel("", sheet = 3)
Nhập Dữ liệu từ Phần mềm Thống kê
R có thể nhập trực tiếp dữ liệu từ SAS, SPSS và Stata bằng cách sử dụng gói haven:
R
install.packages("haven")
library(haven)
# SAS
df_sas <- read_sas("data.sas7bdat")
# SPSS
df_spss <- read_sav("data.sav")
# Stata
df_stata <- read_dta("data.dta")
Đối với MATLAB:
R
install.packages("R.matlab")
library(R.matlab)
matData <- readMat("")
Đối với Octave:
R
library(foreign)
octData <- read.octave("")
Nhập Dữ liệu từ Cơ sở Dữ liệu Quan hệ
Sử dụng gói RODBC để kết nối với các cơ sở dữ liệu như Microsoft SQL Server hoặc Access:
R
install.packages("RODBC")
library(RODBC)
# Kết nối tới cơ sở dữ liệu
con <- odbcConnect("dsn", uid = "username", pwd = "password")
# Lấy dữ liệu
df1 <- sqlFetch(con, "Table1")
df2 <- sqlQuery(con, "SELECT \* FROM Table2")
# Đóng kết nối
odbcClose(con)
Mẹo cho Việc Nhập Dữ liệu Mượt mà
- Sử dụng hàng đầu tiên cho tiêu đề cột
- Đảm bảo tên cột là duy nhất và phân biệt chữ hoa chữ thường
- Tuân thủ các quy tắc đặt tên đơn giản (ví dụ: var_name, varName)
- Thay thế các giá trị thiếu bằng NA
- Xóa các chú thích hoặc ký hiệu thừa trong các tệp
- Giữ cho phong cách mã nhất quán để dễ đọc
Kết luận
Nhập dữ liệu vào R chỉ là sự khởi đầu của hành trình phân tích của bạn. Trong hướng dẫn này, chúng ta đã đi qua các phương pháp để mang vào CSV, TXT, JSON, Excel, XML/HTML, cũng như dữ liệu từ SAS, SPSS, Stata, Matlab và các cơ sở dữ liệu quan hệ.
Với những công cụ và mẹo này, bạn sẽ có khả năng xử lý hầu hết mọi tập dữ liệu mà bạn gặp phải. Và hãy nhớ, R thường có nhiều cách để đạt được cùng một mục tiêu—vì vậy hãy khám phá và tìm ra phương pháp phù hợp nhất với quy trình làm việc của bạn.
Bài viết này được xuất bản lần đầu trên Perceptive Analytics.
Ở Hoa Kỳ, sứ mệnh của chúng tôi là đơn giản — giúp các doanh nghiệp mở khóa giá trị trong dữ liệu. Trong hơn 20 năm, chúng tôi đã hợp tác với hơn 100 khách hàng — từ các công ty Fortune 500 đến các công ty vừa và nhỏ — giúp họ giải quyết các thách thức phân tích dữ liệu phức tạp. Là một trong những nhà tư vấn hàng đầu về Excel, chúng tôi biến dữ liệu thô thành những hiểu biết chiến lược thúc đẩy quyết định tốt hơn.