Existem vários recursos no site de Hadley Wickham para o pacote (agora chamado reshape2), incluindo um link para um artigo sobre o pacote no Journal of Statistical Software.
Aqui está um breve exemplo do artigo:
> require(reshape2)
Loading required package: reshape2
> data(smiths)
> smiths
subject time age weight height
1 John Smith 1 33 90 1.87
2 Mary Smith 1 NA NA 1.54
Observamos que os dados estão na forma ampla. Para ir para o formato longo, tornamos o smithsquadro de dados fundido :
> melt(smiths)
Using subject as id variables
subject variable value
1 John Smith time 1.00
2 Mary Smith time 1.00
3 John Smith age 33.00
4 Mary Smith age NA
5 John Smith weight 90.00
6 Mary Smith weight NA
7 John Smith height 1.87
8 Mary Smith height 1.54
Observe como melt()escolheu uma das variáveis como o ID, mas podemos declarar explicitamente qual usar via argumento 'id':
> melt(smiths, id = "subject")
subject variable value
1 John Smith time 1.00
2 Mary Smith time 1.00
3 John Smith age 33.00
4 Mary Smith age NA
5 John Smith weight 90.00
6 Mary Smith weight NA
7 John Smith height 1.87
8 Mary Smith height 1.54
Aqui está outro exemplo de ?cast:
#Air quality example
names(airquality) <- tolower(names(airquality))
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
Se armazenarmos o quadro de dados fundido, podemos converter em outras formas. Na nova versão do reshape(chamado reshape2), existem funções acast()e dcast()retornando um resultado do tipo matriz (matriz, matriz, vetor) ou um quadro de dados, respectivamente. Essas funções também assumem uma função agregadora (por exemplo mean()) para fornecer resumos de dados na forma fundida. Por exemplo, seguindo o exemplo de Qualidade do ar acima, podemos gerar, de forma ampla, valores médios mensais para as variáveis no conjunto de dados:
> dcast(aqm, month ~ variable, mean)
month ozone solar.r wind temp
1 5 23.61538 181.2963 11.622581 65.54839
2 6 29.44444 190.1667 10.266667 79.10000
3 7 59.11538 216.4839 8.941935 83.90323
4 8 59.96154 171.8571 8.793548 83.96774
5 9 31.44828 167.4333 10.180000 76.90000
Há realmente apenas duas funções principais reshape2: melt()e o acast()e dcast()emparelhamento. Veja os exemplos nas páginas de ajuda para essas duas funções, consulte o site da Hadley (link acima) e o artigo que mencionei. Isso deve começar.
Você também pode examinar o plyrpacote de Hadley, que faz coisas semelhantes, reshape2mas foi projetado para fazer muito mais além disso.