Як використовувати rbindlist у r для створення таблиці даних із кількох


Функцію rbindlist() у R можна використовувати для створення data.table зі списку багатьох об’єктів data.table або data.frame.

Ця функція використовує такий базовий синтаксис:

 rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )

золото:

  • l : список, що містить об’єкти data.table, data.frame або список.
  • use.names : TRUE прив’язує імена стовпців. FALSE зв’язується за позицією.
  • fill : TRUE заповнює відсутні значення NA.
  • idcol : Створює стовпець, що вказує, з якого пункту списку походять ці рядки.

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: використовуйте rbindlist для створення таблиці даних

Припустімо, у R є такий список об’єктів data.table і data.frame:

 library (data.table)

#create data frames and data tables
data1 <- data. table (team=c('A', 'B', 'C'),
                    dots=c(22, 27, 38))

data2 <- data. table (team=c('D', 'E', 'F'),
                    dots=c(22, 14, 20))

data3 <- data. frame (team=c('G', 'H', 'I'),
                    dots=c(11, 15, 18))

#view data frames and data tables
print (data1)
print (data2)
print (data3)

   team points
1: At 22
2:B27
3: C 38
   team points
1:D22
2:E14
3:F20
  team points
1 G 11
2:15 a.m.
3 I 18

Ми можемо використати таку функцію rbindlist() , щоб зв’язати список об’єктів data.table і data.frame в одну таблицю data.table:

 #define list of objects to bind together
data_list <- list(data1, data2, data3)

#bind together list of objects
big_data <- rbindlist(data_list)

#view result
big_data

   team points
1: At 22
2:B27
3: C 38
4:D22
5:E14
6:F20
7:G 11
8:15 a.m.
9: I 18

Результатом є об’єкт data.table з дев’ятьма рядками, які складаються з рядків зі списку наданих нами об’єктів.

Ми також можемо використовувати функцію class() , щоб перевірити, що результат справді є об’єктом data.table:

 #view class of resulting object
class(big_data)

[1] "data.table" "data.frame"

Ми бачимо, що результат справді є об’єктом data.table.

Перевага використання rbindlist

Альтернативою використанню rbindlist буде використання do.call із функцією rbind у базовому R:

 #use rbind to bind together list of objects
do. call (" rbind ", data_list)

   team points
1: At 22
2:B27
3: C 38
4:D22
5:E14
6:F20
7:G 11
8:15 a.m.
9: I 18

Цей код дає той самий результат, але виявилося, що rbindlist значно швидший, особливо для надзвичайно великих об’єктів data.table або data.frame.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в R:

Як перетворити таблицю на кадр даних у R
Як додати рядки до кадру даних у R
Як розділити кадр даних у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *