横持ちデータに変換するならreshapeよりdcast.data.table

かつて縦持ちデータ(long)を横持ちデータ(wide)に変換する際、reshapeが遅すぎて困っていたわけですが解決しました。
data.tableパッケージのdcast.data.tableを使えば10倍以上速くなります。
ただしCRANに上がっているパッケージではまだ実装されていないようなので注意。

以下はLahmanパッケージのBattingデータを用いた例。

# data.tableパッケージはCRANからではなくR-Forgeからインストールする
#install.packages("data.table",repos="http://R-Forge.R-project.org", type="source")

library(dplyr)
library(data.table)
library(reshape2)
library(Lahman)

dat <- Batting %.%  group_by(playerID, yearID)  %.% summarise(total = sum(G)) 
class(dat)  #data.frameほかいくつかクラス属性を持っている
#[1] "grouped_df" "tbl_df"     "tbl"        "data.frame"

dat <- as.data.table(dat)  # クラス属性にdata.tableも追加
class(dat)
#[1] "grouped_df" "tbl_df"     "tbl"        "data.table" "data.frame"
 
system.time(res1 <- reshape(dat, idvar="playerID", timevar="yearID", direction="wide"))
#   ユーザ   システム       経過  
#     8.233      1.190     25.247 

system.time(res2 <- dcast.data.table(dat, playerID~yearID, fun=sum))
#Using 'total' as value column. Use 'value.var' to override
#   ユーザ   システム       経過  
#     0.477      0.045      1.647 

参考記事

data.tableパッケージがreshape2パッケージの関数群を移植してるってことらしい。
http://stackoverflow.com/questions/6902087/proper-fastest-way-to-reshape-a-data-table