Trước khi xử lý và phân tích dữ liệu trong R thì chúng ta phải nhập dữ liệu vào R. Dữ liệu xử lý trong R có rất nhiều định dạng khác nhau, bao gồm CSV,JSON, Excel, HTML, SAS, SPSS, Stata, Matlab,… Mỗi loại định dạng khác nhau thì cách nhập cũng khác nhau, cần các hàm và các gói hỗ trợ phù hợp. Bài này sẽ hướng dẫn cách tải các tệp dữ liệu CSV, TXT, Excel, JSON, Database XML/HTML thường dùng trong R. Ngoài ra, ta cũng sẽ xem xét các tệp ít được sử dụng hơn, như SAS, SPSS, Stata, Matlab.
Nhập dữ liệu vào R từ tệp CSV và TXT
Nhập tệp CSV vào R
Để nhập tệp CSV, chúng ta sẽ sử dụng hàm read_csv của gói readr hoặc read.delim từ gói utils
Nhập tệp TXT vào R
Sử dụng hàm read.delim để thay thế cho read.table khi nhập tệp TXT vào R. Ngoài ra, chúng ta cũng có thể sử dụng read.csv, read.csv2 and read.delim2 để thay thế cho hàm read.table; các hàm này chỉ khác nhau là default. read.delim mặc định tách các giá trị trên Tab (sep=‘,’) và header=F.
Để chuyển một tệp TXT trong R thành một Data Frame, ta sử dụng hàm read.csv
Nhập tệp Excel vào R
Để nhập tệp Excel vào R, ta sử dụng hàm read_excel trong gói realxl
Nhập tệp JSON vào R
Để nhập tệp JASON vào R, ta sử dụng hàm fromJSON trong gói rjson
Để chuyển tệp JASON trong R thành Data Frame, ta sử dụng hàm as.data.frame trong gói read.table
Nhập dữ liệu từ cơ sở dữ liệu bằng SQL trong R
Để trích xuất dữ liệu từ cơ sở dữ liệu bằng truy vấn SQL, chúng ta sử dụng gói DBI và hàm SQLite để tạo kết nối; chúng ta sẽ tải gói RSQLite và tải cơ sở dữ liệu bằng hàm dbConnect. Ngoài ra, dbConnect có thể tải dữ liệu từ MySQL, PostgreSQL và nhiều SQL phổ biến khác.
Sử dụng hàm dbGetQuery để truy vấn và hiển thị kết quả, bằng cách thêm đối tượng kết nối SQLite và truy vấn SQL dưới dạng chuỗi.
Nhập tệp XML và HTML vào R
Nhập tệp XML vào R
Sử dụng hàm xmlParse hoặc xmlTreeParse trong gói xml2 để tải tệp XML. Giống như hàm read_csv, hàm read_xml có thể tải dữ liệu XML bằng cách cung cấp liên kết URL đến XML; sẽ tải trang và phân tích dữ liệu XML.
Để chuyển đổi tệp XML sang khung dữ liệu Data Frame trong R, chúng ta sử dụng xmlToDataFrame`.
Nhập tệp HTML vào R
Để tải một tệp HTML, chúng ta sẽ sử dụng các gói XML và RCurl. Ví dụ: chúng ta sẽ cung cấp URL cho hàm getURL và sau đó thêm đối tượng vào hàm readHTMLTable; để trích xuất tất cả các bảng HTML từ trang web và chúng ta chỉ cần khám phá từng bảng để chọn bảng mình muốn.
Ngoài ra, chúng ta có thể sử dụng gói rvest để đọc tệp HTML bằng URL, trích xuất tất cả các bảng và hiển thị dưới dạng Data Frame.
Nhập tệp SAS vào R
Để nhập tệp SAS vào R, chúng ta dùng hai cách sau
• Sử dụng hàm read_sas trong gói haven
• Sử dụng hàm read.sas7bdat trong gói sas7bdat
Nhập tệp SPSS vào R
Để nhập tệp SPSS (.sav file) vào R, chúng ta sử dụng hai cách sau đây
• Sử dụng hàm read_sav trong gói haven
• Sử dụng hàm read.spss trong gói foreign
Nhập tệp Stata vào R
Để nhập tệp Stata vào R, chúng ta sử dụng hàm read.dta trong gói ucla.edu
Nhập tệp Matlab vào R
Để nhập tệp Matlab vào R, chúng ta sử dụng hàm readMat trong gói R.matlab
Nhập tệp QuantMod vào R
Để nhập tệp QuantMod vào R, chúng ta sử dụng hàm getSymbols () trong gói quantmod
Nhập dữ liệu lớn vào R
Các tập dữ liệu có dung lượng trên 1 GigaByte được coi la dữ liệu lớn, ví dụ như bộ dữ liệu US Accidents (2016-2023) từ Kaggle có dung lượng khoảng 3,06 GigaByte.
Nhập một tập dữ liệu lớn vào R bằng cách sử dụng read.table
Chúng ta tải tệp zip trực tiếp vào gói utils bằng hàm read.table bằng cách sử dụng hàm unz. Nó sẽ giúp bạn tiết kiệm thời gian giải nén và sau đó tải tệp CSV. Các bước như sau
- Cung cấp cho unz thư mục zip và tệp CSV trong zip.
- Thêm đối tượng unz vào read.table.
- Giới hạn số hàng, ví dụ 10000 hàng.
- Phân tách các giá trị theo khoảng trắng: sep=" ".
Nhập một tập dữ liệu lớn vào R bằng cách sử dụng read_csv
Tương tự như read.table, chúng ta sử dụng hàm read_csv() để tải tệp CSV. Thay vì nrow, chúng ta sẽ sử dụng n_max` để đọc một số lượng bản ghi giới hạn.
Nhập một tập dữ liệu lớn vào R bằng cách sử dụng gói ff
Chúng ta sử dụng gói ff để tối ưu hóa thời gian tải và lưu trữ. Hàm read.table.ffdf tải dữ liệu theo từng phần, giúp giảm thời gian tải. Đầu tiên chúng ta sẽ giải nén tệp và đọc dữ liệu bằng hàm read.table.ffdf.
Ngoài ra, chúng ta cũng có thể sử dụng hàm fread để đọc 10.000 hàng đầu tiên. Hàm này có thể tự động hiểu định dạng tệp
Nhất Luận
----------------------------------------
Tài liệu tham khảo:
[1] Intro to R Programming: Importing data files using the Script Editor. https://libguides.chapman.edu/R/import#:~:text=Importing%20data%20files%20using%20RStudio%20functions%3A&text=In%20RStudio%2C%20click%20’Import%20Dataset,Name’%20to%20the%20data%20set
[2] Hotel bookings. https://www.kaggle.com/datasets/mathsian/hotel-bookings?resource=download&select=hotel_bookings.csv
[3] Drake Lyrics. https://www.kaggle.com/datasets/juicobowley/drake-lyrics
[4] Tesla Deaths (Updated 2023). https://www.kaggle.com/datasets/thedevastator/tesla-accident-fatalities-analysis-and-statistic?select=Tesla+Deaths+-+Deaths+%283%29.csv
[5] Importing Data in R Script. https://www.geeksforgeeks.org/importing-data-in-r-script/?ref=header_outind
[6] Mental Health in the Tech Industry. https://www.kaggle.com/datasets/anth7310/mental-health-in-the-tech-industry
[7] Importing Data with the RStudio IDE. https://support.posit.co/hc/en-us/articles/218611977-Importing-Data-with-the-RStudio-IDE
[8] US Accidents (2016 - 2023). https://www.kaggle.com/datasets/sobhanmoosavi/us-accidents