Как использовать 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *