欢迎来到本课程!

在 R 中使用 data.table 进行数据处理

Matt Dowle and Arun Srinivasan

Instructors, DataCamp

什么是 data.table?

  • 增强版 data.frame
    • 继承并扩展 data.frame
  • 列式数据结构
  • 各列长度相同,但类型可不同
在 R 中使用 data.table 进行数据处理

为何使用 data.table?

  • 简洁一致的语法
    • 分组 思考
    • 为每个部分提供占位符
# data.table 语法通式
DT[i, j, by]
   |  |  |
   |  |  --> 按什么分组?
   |  -----> 做什么?
   --------> 哪些行?
在 R 中使用 data.table 进行数据处理

基准测试

在 R 中使用 data.table 进行数据处理

为何使用 data.table?

在 R 中使用 data.table 进行数据处理

创建 data.table

创建数据表的三种方式:

  • data.table()
  • as.data.table()
  • fread()
在 R 中使用 data.table 进行数据处理

创建 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
在 R 中使用 data.table 进行数据处理

创建 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
在 R 中使用 data.table 进行数据处理

data.table 与 data.frame(I)

由于 data.table 本身就是 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"
在 R 中使用 data.table 进行数据处理

data.table 与 data.frame(II)

用于查询 data.frame 的函数同样适用于 data.table

nrow(x)
2
ncol(x)
2
dim(x)
2 2
在 R 中使用 data.table 进行数据处理

data.table 与 data.frame(III)

data.table 不会自动把字符列转换为因子

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"
在 R 中使用 data.table 进行数据处理

data.table 与 data.frame(IV)

从不设置、需要或使用行名

rownames(x_dt) <- c("R1", "R2")
x_dt
   id name
1:  1    a
2:  2    b
在 R 中使用 data.table 进行数据处理

Passons à la pratique !

在 R 中使用 data.table 进行数据处理

Preparing Video For Download...