## Can someone suggest a simpler expression than either of these, with the
goal
## of taking a long matrix into a wide one with exactly one of the factors
converted to
## columns and all the rest retained as factors.  I want something that
generalizes beyond
## the three factors illustrated here.

## Rich

meltTest <- data.frame(A=rep(c("B","C"), each=12),
                       D=rep(c("E","F","G"), each=4, times=2),
                       H=rep(c("I","J","K","L"), times=6),
                       M=1:24)

meltTest

result.melt <- do.call("rbind", {
  tmp <- cast(D ~ H | A, value="M", data=meltTest)
  lapply(names(tmp), function(x) cbind(A=x, tmp[[x]])) ## explicit use of
name "A"
})
result.melt

result.reshape <- reshape(meltTest, direction="wide", timevar="H",
idvar=c("A","D"))
names(result.reshape)[3:6] <- unique(as.character(meltTest$H))  ## explicit
use of name "H"
result.reshape

	[[alternative HTML version deleted]]

