Îmbinarea datelor cu data.table în R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Concatenarea data.tables

rbind(): concatenează rânduri din data.tables stocate în variabile diferite
rbindlist(): concatenează rânduri dintr-o list de data.tables
Concatenarea a două sau mai multe data.tables stocate ca variabile
# ... acceptă orice număr de argumente
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
Argumentul idcol adaugă o coloană care indică data.table-ul de origine
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.
Concatenarea rândurilor dintr-o list de data.tables
# Citirea unei liste de 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
Argumentul idcol preia numele din lista de intrare
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() este use.names = TRUErbindlist() este use.names = FALSE, cu excepția cazului în care fill = TRUE.Îmbinarea datelor cu data.table în R