Я обычно использую пакет reshape
для агрегирования некоторых данных (d'uh), обычно с plyr
, из-за его невероятной функции each
.Недавно я получил предложение переключиться на reshape2
и попробовать его, и теперь я больше не могу использовать each
волшебство.
изменить форму
> m <- melt(mtcars, id.vars = c("am", "vs"), measure.vars = "hp")
> cast(m, am + vs ~ variable, each(min, max, mean, sd))
am vs hp_min hp_max hp_mean hp_sd
1 0 0 150 245 194.16667 33.35984
2 0 1 62 123 102.14286 20.93186
3 1 0 91 335 180.83333 98.81582
4 1 1 52 113 80.57143 24.14441
изменить форму2
require(plyr)
> m <- melt(mtcars, id.vars = c("am", "vs"), measure.vars = "hp")
> dcast(m, am + vs ~ variable, each(min, max, mean, sd))
Error in structure(ordered, dim = ns) :
dims [product 4] do not match the length of object [16]
In addition: Warning messages:
1: In fs[[i]](x, ...) : no non-missing arguments to min; returning Inf
2: In fs[[i]](x, ...) : no non-missing arguments to max; returning -Inf
У меня не было настроения расчесывать это, поскольку мой предыдущий код работает как брелок с reshape
, но я бы очень хотел знать:
- можно ли использовать
each
с dcast
? - целесообразно ли вообще использовать
reshape2
?reshape
устарело?