There are several resources on Hadley Wickham's website for the package (now called reshape2
), including a link to a paper on the package in the Journal of Statistical Software.
Here is a brief example from the paper:
> 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
We note that the data are in the wide form. To go to the long form, we make the smiths
data frame molten:
> 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
Notice how melt()
chose one of the variables as the id, but we can state explicitly which to use via argument '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
İşte başka bir örnek ?cast
:
#Air quality example
names(airquality) <- tolower(names(airquality))
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
Erimiş veri çerçevesini saklarsak , başka biçimlerde de olabiliriz. Yeni sürümde reshape
(çağrılan reshape2
) fonksiyonlar vardır acast()
ve sırasıyla dcast()
bir dizi benzeri (dizi, matris, vektör) sonuç veya bir veri çerçevesi döndürür. Bu fonksiyonlar ayrıca mean()
, erimiş formdaki verilerin özetlerini sağlamak için bir toplama fonksiyonuna (örneğin ) sahiptir. Örneğin, yukarıdaki Hava Kalitesi örneğinden sonra, geniş bir biçimde, veri kümesindeki değişkenler için aylık ortalama değerler üretebiliriz:
> 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
Sadece iki ana fonksiyonları gerçekten vardır reshape2
: melt()
ve acast()
vedcast()
eşleştirme. Bu iki işlev için yardım sayfalarındaki örneklere bakın, Hadley'in web sitesine bakın (yukarıdaki bağlantı) ve bahsettiğim makaleye bakın. Bu seni başlatmalı.
You might also look into Hadley's plyr
package which does similar things to reshape2
but is designed to do a whole lot more besides.