data.tables casten

Data samenvoegen met data.table in R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Een lange data.table casten

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

Data samenvoegen met data.table in R

De functie dcast()

De algemene vorm van dcast():

dcast(DT, ids ~ group, value.var = "values")
      |   |     |                   |
      |   |     |                    --> kolom om op te splitsen
      |   |      ----------------------> groeplabels om op te splitsen
      |    ----------------------------> rijen die als ID's blijven
       --------------------------------> te herstructureren data.table            
Data samenvoegen met data.table in R

De functie dcast()

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

Data samenvoegen met data.table in R

Meerdere waardekolommen splitsen

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

Data samenvoegen met data.table in R

Meerdere rij-identifiers

Houd meerdere kolommen als rij-ID's:

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

Data samenvoegen met data.table in R

Kolommen laten vallen

Alleen kolommen in de formule of value.var komen in het resultaat:

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

Data samenvoegen met data.table in R

Meerdere groeperingen

Splitsen op meerdere groepeerkolommen:

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

Data samenvoegen met data.table in R

Converteren naar een matrix

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
Data samenvoegen met data.table in R

Converteren naar een matrix

as.matrix() kan een kolom gebruiken als rijnaam van de matrix:

mat <- as.matrix(sales_wide, rownames = "season")
mat
       2015    2016        
Autumn 3420000 3670000
Spring 2950000 3000300
Summer 2980700 3120200
Winter 3200100 3350000
Data samenvoegen met data.table in R

Laten we oefenen!

Data samenvoegen met data.table in R

Preparing Video For Download...