Reshape2, melt, order of categorical variable and ggplot2
On Oct 7, 2012, at 1:40 PM, Stathis Kamperis wrote:
Hello everyone, I have the following data frame:
df
V1 V2 V3 1 bench1_10 16675 16678 2 bench1_10 16585 16672 3 bench1_100 183924 185563 4 bench1_100 169310 184806 5 bench1_300 514430 516834 6 bench1_300 510743 514062 7 bench1_500 880146 877882 8 bench1_500 880146 857359 9 bench1_1k 880146 1589600 10 bench1_1k 880146 1709990
I'd like to melt it by using id=V1:
mdf <- melt(df)
Using V1 as id variables
mdf
V1 variable value 1 bench1_10 V2 16675 2 bench1_10 V2 16585 3 bench1_100 V2 183924 4 bench1_100 V2 169310 5 bench1_300 V2 514430 6 bench1_300 V2 510743 7 bench1_500 V2 880146 8 bench1_500 V2 880146 9 bench1_1k V2 880146 10 bench1_1k V2 880146 11 bench1_10 V3 16678 12 bench1_10 V3 16672 13 bench1_100 V3 185563 14 bench1_100 V3 184806 15 bench1_300 V3 516834 16 bench1_300 V3 514062 17 bench1_500 V3 877882 18 bench1_500 V3 857359 19 bench1_1k V3 1589600 20 bench1_1k V3 1709990
My problem is that V1 in mdf has bench1_1k before bench1_500 and so on. This is a problem because when I try to plot the results with: p <- ggplot(mdf, aes(x=mdf$V1, y=mdf$value)) p <- p + geom_point(aes(colour=factor(mdf$variable))) p I get bench1_1k in the horizontal axis before say bench1_500. Is there any way to have V1 in mdf "sorted" just like in df ? Or do I have to rename my files from bench1_1k to bench1_1000 and be done ?
In all likelihood you need to review the care and feeding of the factor beasts under your care. The alpha ordering is the default and that will put "bench1_1k" in the middle. You canchange the levels however. ?levels
David Winsemius, MD Alameda, CA, USA