Łączenie danych z data.table w R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Łączenie data.tables

rbind(): łączy wiersze z data.tables przechowywanych w różnych zmiennych
rbindlist(): łączy wiersze z list obiektów data.table
Łączenie dwóch lub więcej data.tables przechowywanych jako zmienne
# ... przyjmuje dowolną liczbę argumentów
rbind(...)
rbind(sales_2015, sales_2016)
quarter amount
1: 1 3200100
2: 2 2950000
3: 3 2980700
4: 4 3420000
5: 1 3350000
6: 2 3000300
7: 3 3120200
8: 4 3670000
Argument idcol dodaje kolumnę wskazującą źródłowy obiekt data.table
rbind("2015" = sales_2015, "2016" = sales_2016, idcol = "year")
year quarter amount
1: 2015 1 3200100
2: 2015 2 2950000
3: 2015 3 2980700
4: 2015 4 3420000
5: 2016 1 3350000
6: 2016 2 3000300
7: 2016 3 3120200
8: 2016 4 3670000
rbind(sales_2015, sales_2016, idcol = "year")
year quarter amount
1: 1 1 3200100
2: 1 2 2950000
3: 1 3 2980700
4: 1 4 3420000
5: 2 1 3350000
6: 2 2 3000300
7: 2 3 3120200
8: 2 4 3670000
rbind(sales_2015, sales_2016, idcol = TRUE)
.id quarter amount
1: 1 1 3200100
2: 1 2 2950000
3: 1 3 2980700
4: 1 4 3420000
5: 2 1 3350000
6: 2 2 3000300
7: 2 3 3120200
8: 2 4 3670000
rbind("2015" = sales_2015, "2016" = sales_2016, idcol = "year",
fill = TRUE)

rbind(sales_2015, sales_2016, idcol = "year")
Error in rbindlist(l, use.names, fill, idcol) :
Item 2 has 3 columns, inconsistent with item 1 which has 2 columns.
If instead you need to fill missing columns, use set argument 'fill'
to TRUE.
Łączenie wierszy z list obiektów data.table
# Wczytanie listy data.tables
table_files <- c("sales_2015.csv", "sales_2016.csv")
list_of_tables <- lapply(table_files, fread)
rbindlist(list_of_tables)
quarter amount
1: 1 3200100
2: 2 2950000
3: 3 2980700
4: 4 3420000
5: 1 3350000
6: 2 3000300
7: 3 3120200
8: 4 3670000
Argument idcol pobiera nazwy z listy wejściowej
names(list_of_tables) <- c("2015", "2016")
rbindlist(list_of_tables, idcol = "year")
year quarter amount
1: 2015 1 3200100
2: 2015 2 2950000
3: 2015 3 2980700
4: 2015 4 3420000
5: 2016 1 3350000
6: 2016 2 3000300
7: 2016 3 3120200
8: 2016 4 3670000
rbind("2015" = sales_2015, "2016" = sales_2016, idcol = "year",
use.names = TRUE)

rbind("2015" = sales_2015, "2016" = sales_2016, idcol = "year",
use.names = FALSE)

rbind("2015" = sales_2015, "2016" = sales_2016, idcol = "year",
use.names = FALSE)

rbind() używa use.names = TRUErbindlist() używa use.names = FALSE, chyba że fill = TRUE.Łączenie danych z data.table w R