+ - 0:00:00
Notes for current slide
Notes for next slide

Cách nhập dữ liệu vào R (tabular data)


Khóa học: Hướng dẫn sử dụng R để xử lý dữ liệu

Biên soạn: Duc Nguyen (Tự học R chấm com)

Đăng ký: tuhocr.com@gmail.com - Website: www.tuhocr.com

1 / 12

Import file Excel .xlsx into R

Có nhiều hơn một cách để nhập dữ liệu.
Hãy chọn cách mà bạn cảm thấy quen thuộc, dễ hiểu, thuận tiện.

2 / 12

Lệnh library(readxl)read_excel()

Cách thực hiện

3 / 12

Kiểm tra dữ liệu đầu vào

Cách thực hiện

4 / 12

Import file text .txt into R

Đáp ứng các nhu cầu nhập liệu khác nhau

5 / 12

Lệnh read.table()

Minimal working example

dulieu <- read.table(file = "dulieu.txt", # Tên file .txt chứa dữ liệu
header = TRUE, # Dòng đầu tiên có phải là tiêu đề hay không
sep = "", # Ngăn cách giữa các cột là khoảng trắng
quote = "\"'", # Xem các ký tự nháy đơn, nháy kép là string/text
dec = ".", # Số thập phân trong file gốc sử dụng dấu chấm
col.names = c("khoi_luong_cay", "nghiem_thuc"), # Đổi tên cột
na.strings = "NA", # Ký hiệu missing value trong file gốc là NA
colClasses = c("numeric", "character"), # Xác định đặc điểm dữ liệu
nrows = -1, # Số hàng sẽ nhập dữ liệu (mặc định -1 là chọn hết toàn bộ)
skip = 0, # Số lượng hàng dữ liệu được bỏ qua tính từ hàng đầu tiên
comment.char = "#", # Ký hiệu chú thích trong file gốc
stringsAsFactors = FALSE # Các biến `character` là dạng `factor`
)
6 / 12

Lệnh read.table()

Thông thường, ta chỉ cần các thông số/argument này là đủ. Sau đó tính tiếp.

getwd() # Kiểm tra thư mục làm việc
# setwd() # → Có thể thiết lập thư mục làm việc (nếu cần)
## [1] "D:/GITHUB/book"
dulieu <- read.table(file = "rbasics/full/dulieu.txt", header = TRUE,
col.names = c("khoi_luong_cay", "nghiem_thuc"),
na.strings = "NA",
colClasses = c("numeric", "character")
)
7 / 12

Import file CSV .csv into R

CSV = Comma Separated Values

8 / 12

Lệnh read.csv()

Các tham số tương tự như lệnh read.table()

ketqua <- read.csv(file = "ketqua.csv",
header = TRUE,
sep = ",", # Các cột phân cách bởi dấu phẩy
quote = "\"'",
dec = ".",
#col.names = c("khoi_luong_cay", "nghiem_thuc"),
na.strings = "NA",
#colClasses = c("numeric", "character"), # Turn off thông số không dùng
nrows = -1,
skip = 0,
comment.char = "#",
stringsAsFactors = FALSE,
fill = TRUE # Nếu các hàng không bằng nhau sẽ để khoảng trống
)
9 / 12

Tham số mặc định

Nếu dữ liệu đơn giản, ta có thể dùng câu lệnh ngắn gọn mà không cần thiết lập tham số.

dulieu <- read.table("dulieu.txt")

R sẽ tự động (mặc định) cho các tham số:

  • Bỏ qua các dòng có comment # trong dữ liệu gốc

  • Tính xem có bao dòng và bộ nhớ RAM cần sử dụng

  • Tự xác định các cột trong file dữ liệu thuộc class nào (type of variable)

10 / 12

Làm việc với file dữ liệu lớn (large dataset)

Ví dụ: Ta có 1 data frame gồm 2,500,000 hàng và 120 cột. Tính bộ nhớ RAM của máy tính đáp ứng được nhu cầu?

Cách tính:

2,500,000 × 120 × 8 byte/numeric

= 2,400,000,000 bytes

= 2,400,000,000 / 220

= 2,288.82 MB

= 2.24 GB

11 / 12

Tăng tốc độ đọc dữ liệu (large dataset)

Khi nhập dữ liệu thì R sẽ tự động xác định colClasses tương ứng với từng cột bằng cách rà soát toàn bộ các dòng dữ liệu trong đó rồi chọn class nào phù hợp. Ví dụ interger (nếu toàn bộ giá trị trong cột là số nguyên), numeric (nếu giá trị trong cột là số thực) hay character.

Nếu chúng ta biết rõ đặc điểm của từng cột thì ta sẽ ghi tham số ngay từ đầu. Ví dụ, ta biết chắc chắn các cột trong bảng dữ liệu là numeric thì chỉ cần set tham số colClasses = "numeric". Tuy nhiên trong bảng dữ liệu với rất nhiều cột với các class khác nhau thì việc này mất thời gian.

Sử dụng cách tiếp cận sau giúp tăng tốc độ nhập dữ liệu gấp đôi so với bình thường.

data_small <- read.table("data_full.txt", nrows = 100) # Đọc trước 100 dòng đầu tiên
data_small_class <- sapply(data_small, class) # Tách các `class` trong dữ liệu
data_full <- read.table("data_full.txt", # Đọc lại file dữ liệu lớn, lấy toàn bộ
colClasses = classes) # Gán lại các `class` được R xác định
# từ bộ dữ liệu nhỏ
12 / 12

Import file Excel .xlsx into R

Có nhiều hơn một cách để nhập dữ liệu.
Hãy chọn cách mà bạn cảm thấy quen thuộc, dễ hiểu, thuận tiện.

2 / 12
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow