Добро пожаловать на курс!

Работа с данными с помощью data.table в R

Matt Dowle and Arun Srinivasan

Instructors, DataCamp

Что такое data.table?

  • Расширенный data.frame
    • Наследует и расширяет data.frame
  • Столбцовая структура данных
  • Все столбцы должны быть одинаковой длины, но могут иметь разный тип
Работа с данными с помощью data.table в R

Зачем использовать data.table?

  • Лаконичный и последовательный синтаксис
    • Мышление в категориях строк, столбцов и групп
    • Для каждого — свой заполнитель
# General form of data.table syntax
DT[i, j, by]
   |  |  |
   |  |  --> grouped by what?
   |  -----> what to do?
   --------> on which rows?
Работа с данными с помощью data.table в R

benchmark

Работа с данными с помощью data.table в R

Зачем использовать data.table?

  • Богатый функционал
    • Параллельные вычисления
    • Быстрое обновление по ссылке
    • Мощные объединения (Joining Data with data.table in R)
Работа с данными с помощью data.table в R

Создание data.table

Три способа создать data.table:

  • data.table()
  • as.data.table()
  • fread()
Работа с данными с помощью data.table в R

Создание 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
Работа с данными с помощью data.table в R

Создание 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
Работа с данными с помощью data.table в R

data.tables и data.frames (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"
Работа с данными с помощью data.table в R

data.tables и data.frames (II)

Функции для работы с data.frame также работают с data.table

nrow(x)
2
ncol(x)
2
dim(x)
2 2
Работа с данными с помощью data.table в R

data.tables и data.frames (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"
Работа с данными с помощью data.table в R

data.tables и data.frames (IV)

Никогда не задаёт, не требует и не использует имена строк

rownames(x_dt) <- c("R1", "R2")
x_dt
   id name
1:  1    a
2:  2    b
Работа с данными с помощью data.table в R

Давайте потренируемся!

Работа с данными с помощью data.table в R

Preparing Video For Download...