Skip to content
Prev 227921 / 398500 Next

Help with Reshaping from Wide to Long

Try this:

library(reshape)

accuracy <- structure(list(Subject = c(101L, 102L, 103L, 104L, 105L, 106L
), CircleBlue = c(95L, 80L, 80L, 85L, 70L, 70L), CircleRed = c(100L,
90L, 70L, 80L, 75L, 75L), CircleGreen = c(100L, 100L, 95L, 100L,
95L, 75L), SquareBlue = c(95L, 85L, 90L, 90L, 70L, 40L), SquareRed =
c(100L,
90L, 100L, 90L, 75L, 60L), SquareGreen = c(100L, 100L, 100L, 90L,
85L, 85L), TriangleBlue = c(60L, 55L, 65L, 65L, 60L, 40L), TriangleRed =
c(80L,
45L, 60L, 50L, 40L, 35L), TriangleGreen = c(75L, 45L, 55L, 50L, 45L,
50L)), .Names = c("Subject", "CircleBlue", "CircleRed", "CircleGreen",
"SquareBlue", "SquareRed", "SquareGreen", "TriangleBlue", "TriangleRed",
"TriangleGreen"), row.names = c(NA, 6L), class = "data.frame")

tmp1 <- melt( accuracy, id="Subject" )
colnames( tmp1 ) [ which( colnames( tmp1 ) == "value" ) ] <- "Accuracy"

keys <- data.frame( variable = levels( tmp1$variable )
                   , Shape=rep( c( "Circle", "Square", "Triangle" ), each=3 )
                   , Color=rep( c( "Blue", "Red", "Green" ), times=3 )
                   )
tmp2 <- merge( tmp1, keys )

accuracym <- tmp2[ , c("Accuracy", "Subject", "Shape", "Color") ]
On Sat, 17 Jul 2010, John L. Woodard wrote:

            
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k