Transformarea data.tables

Îmbinarea datelor cu data.table în R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Transformarea unui data.table lung

sales_wide <- dcast(sales_long, quarter ~ year, value.var = "amount")

Îmbinarea datelor cu data.table în R

Funcția dcast()

Forma generală a dcast():

dcast(DT, ids ~ group, value.var = "values")
      |   |     |                   |
      |   |     |                    --> coloana de împărțit
      |   |      ----------------------> etichete de grup pentru împărțire
      |    ----------------------------> rânduri păstrate ca identificatori
       --------------------------------> data.table de restructurat            
Îmbinarea datelor cu data.table în R

Funcția dcast()

sales_wide <- dcast(sales_long, quarter ~ year, value.var = "amount")

Îmbinarea datelor cu data.table în R

Împărțirea mai multor coloane de valori

dcast(profit_long, quarter ~ year, value.var = c("revenue", "profit"))

Îmbinarea datelor cu data.table în R

Identificatori multipli de rând

Păstrați mai multe coloane ca identificatori de rând:

dcast(sales_long, quarter + season ~ year, value.var = "amount")

Îmbinarea datelor cu data.table în R

Eliminarea coloanelor

Doar coloanele din formulă sau value.var vor apărea în rezultat:

sales_wide <- dcast(sales_long, quarter ~ year, value.var = "amount")

Îmbinarea datelor cu data.table în R

Grupări multiple

Împărțire după mai multe coloane de grupare:

dcast(sales_long, quarter ~ department + year, value.var = "amount")

Îmbinarea datelor cu data.table în R

Conversia la matrice

sales_wide <- dcast(sales_long, season ~ year, value.var = "amount")
sales_wide
   season    2015    2016
1: Autumn 3420000 3670000
2: Spring 2950000 3000300
3: Summer 2980700 3120200
4: Winter 3200100 3350000
Îmbinarea datelor cu data.table în R

Conversia la matrice

as.matrix() poate folosi una dintre coloane ca nume de rânduri:

mat <- as.matrix(sales_wide, rownames = "season")
mat
       2015    2016        
Autumn 3420000 3670000
Spring 2950000 3000300
Summer 2980700 3120200
Winter 3200100 3350000
Îmbinarea datelor cu data.table în R

Să exersăm!

Îmbinarea datelor cu data.table în R

Preparing Video For Download...