Як використовувати 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