На веб-сайті Хедлі Вікхема є декілька ресурсів для пакету (зараз його називають reshape2), включаючи посилання на папір про пакет у Журналі статистичного програмного забезпечення.
Ось короткий приклад з статті:
> 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
Зауважимо, що дані у широкій формі. Щоб перейти до довгої форми, робимо smithsкадр даних розплавленим :
> 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
Зауважте, як melt()вибрали одну зі змінних як ідентифікатор, але ми можемо чітко вказати, яку використовувати через аргумент '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
Ось ще один приклад ?cast:
#Air quality example
names(airquality) <- tolower(names(airquality))
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
Якщо ми зберігаємо розплавлений кадр даних, ми можемо передати інші форми. У новій версії reshape(називаєтьсяreshape2 ) є функції acast()та dcast()повертають результат, схожий на масив (масив, матриця, вектор) або кадр даних відповідно. Ці функції також виконують агрегуючу функцію (наприклад mean()) для надання зведених даних у розплавленому вигляді. Наприклад, виходячи з наведеного вище прикладу якості повітря, ми можемо генерувати середньомісячні значення змінних у наборі даних у широкій формі:
> 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
Є дійсно тільки дві основні функції в reshape2: melt()і acast()таdcast() спаровування. Подивіться приклади на довідкових сторінках для цих двох функцій, перегляньте веб-сайт Хедлі (посилання вище) та подивіться на згаданий нами документ. Це і повинно вас почати.
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.