## 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]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.