data.table のキャスト

R で学ぶ data.table によるデータ結合

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

ロング data.table のキャスト

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

R で学ぶ data.table によるデータ結合

dcast() 関数

dcast() の基本形:

dcast(DT, ids ~ group, value.var = "values")
      |   |     |                   |
      |   |     |                    --> 分割する列
      |   |      ----------------------> 分割に使うグループラベル
      |    ----------------------------> 識別子として残す行
       --------------------------------> 形を変える data.table            
R で学ぶ data.table によるデータ結合

dcast() 関数

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

R で学ぶ data.table によるデータ結合

複数の値列を分割

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

R で学ぶ data.table によるデータ結合

複数の行識別子

複数列を行の識別子として保持:

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

R で学ぶ data.table によるデータ結合

列のドロップ

式または value.var に含まれる列だけが結果に残る:

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

R で学ぶ data.table によるデータ結合

複数グループ

複数のグループ列で分割:

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

R で学ぶ data.table によるデータ結合

行列への変換

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
R で学ぶ data.table によるデータ結合

行列への変換

as.matrix() は指定した列を行名に使える:

mat <- as.matrix(sales_wide, rownames = "season")
mat
       2015    2016        
Autumn 3420000 3670000
Spring 2950000 3000300
Summer 2980700 3120200
Winter 3200100 3350000
R で学ぶ data.table によるデータ結合

Passons à la pratique !

R で学ぶ data.table によるデータ結合

Preparing Video For Download...