Как использовать rbindlist в r для создания таблицы данных из нескольких
Функцию rbindlist() в R можно использовать для создания таблицы data.table из списка множества объектов data.table или data.frame.
Эта функция использует следующий базовый синтаксис:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
Золото:
- l : Список, содержащий объекты data.table, data.frame или list.
- use.names : TRUE привязывается по именам столбцов. FALSE привязывается по положению.
- fill : TRUE заполняет пропущенные значения значением NA.
- idcol : создает столбец, указывающий, из какого элемента списка взяты эти строки.
В следующем примере показано, как использовать эту функцию на практике.
Пример. Используйте rbindlist для создания таблицы данных.
Предположим, у нас есть следующий список объектов data.table и data.frame в R:
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