Chào mừng đến với khóa học!

Xử lý dữ liệu với data.table trong R

Matt Dowle and Arun Srinivasan

Instructors, DataCamp

data.table là gì?

  • data.frame được nâng cấp
    • Kế thừa và mở rộng data.frame
  • Cấu trúc dữ liệu theo cột
  • Mỗi cột phải cùng độ dài nhưng có thể khác kiểu
Xử lý dữ liệu với data.table trong R

Vì sao dùng data.table?

  • Cú pháp ngắn gọn, nhất quán
    • Nghĩ theo rows, columns và groups
    • Cung cấp một placeholder cho mỗi phần
# General form of data.table syntax
DT[i, j, by]
   |  |  |
   |  |  --> nhóm theo gì?
   |  -----> làm gì?
   --------> trên hàng nào?
Xử lý dữ liệu với data.table trong R

benchmark

Xử lý dữ liệu với data.table trong R

Vì sao dùng data.table?

Xử lý dữ liệu với data.table trong R

Tạo một data.table

Ba cách tạo data table:

  • data.table()
  • as.data.table()
  • fread()
Xử lý dữ liệu với data.table trong R

Tạo một data.table

library(data.table)
x_df <- data.frame(id = 1:2, name = c("a", "b"))
x_df
id name
 1    a
 2    b
x_dt <- data.table(id = 1:2, name = c("a", "b"))
x_dt
id name
 1    a
 2    b
Xử lý dữ liệu với data.table trong R

Tạo một data.table

y <- list(id = 1:2, name = c("a", "b"))
y
$id
1 2
$name
"a" "b"
x <- as.data.table(y)
x
id name
 1    a
 2    b
Xử lý dữ liệu với data.table trong R

data.tables và data.frames (I)

Vì data.table là data.frame ...

x <- data.table(id = 1:2, 
                name = c("a", "b"))
x
id name
 1    a
 2    b
class(x)
"data.table" "data.frame"
Xử lý dữ liệu với data.table trong R

data.tables và data.frames (II)

Các hàm truy vấn dùng cho data.frame cũng hoạt động với data.table

nrow(x)
2
ncol(x)
2
dim(x)
2 2
Xử lý dữ liệu với data.table trong R

data.tables và data.frames (III)

data.table không bao giờ tự động chuyển cột ký tự thành factor

x_df <- data.frame(id = 1:2, name = c("a", "b"))
class(x_df$name)
"factor"
x_dt <- data.table(id = 1:2, name = c("a", "b"))
class(x_dt$name)
"character"
Xử lý dữ liệu với data.table trong R

data.tables và data.frames (IV)

Không bao giờ đặt, cần hay dùng row names

rownames(x_dt) <- c("R1", "R2")
x_dt
   id name
1:  1    a
2:  2    b
Xử lý dữ liệu với data.table trong R

Cùng luyện tập nào!

Xử lý dữ liệu với data.table trong R

Preparing Video For Download...