?? ggplot did not reorder the columns -- it just plotted them in the order of the levels of factor(chrom), which is exactly what you wanted afaics. There is no need to reorder to do what you want.
Comment: ?dput to put reproducible data into an email that people can conveniently copy and paste into R. However, if you wish to do so: (untested since you did not use dput) Assume your data.frame is named df 1. First change chrom into a character column: chrm <- as.character(df$chrom) 2. Use regular expressions to get rid of the chr. df$chrom <- sub("chr","",chrm) 3. Use ?order to reorder (since the default ordering is what you want at least in English locales) chrom <- chrom[order(df$chrom,] Does this give you what you wanted? -- Bert On Thu, Jun 21, 2012 at 9:33 AM, Kevin Parrish <kparri...@gmail.com> wrote: > Greetings, > > I am new to R, but trying to put in the time to learn. I have read the R > manual and several other introductory texts; however, there is nothing like > actually putting it into practice. So here is my problem, and its more of a > learning exercise for myself than anything else, but I'm stuck and getting > extremely frustrated that I can't figure it out. > > I'm trying to make a fairly simple figure, but also trying to make it look > "better" using ggplot2. > > I have data.frame that contains > > chrom length > > 1 chr1 249250621 > > 2 chr2 243199373 > > 3 chr3 198022430 > > 4 chr4 191154276 > > 5 chr5 180915260 > > 6 chr6 171115067 > > 7 chr7 159138663 > > 8 chrX 155270560 > > 9 chr8 146364022 > > 10 chr9 141213431 > > 11 chr10 135534747 > > 12 chr11 135006516 > > 13 chr12 133851895 > > 14 chr13 115169878 > > 15 chr14 107349540 > > 16 chr15 102531392 > > 17 chr16 90354753 > > 18 chr17 81195210 > > 19 chr18 78077248 > > 20 chr20 63025520 > > 21 chrY 59373566 > > 22 chr19 59128983 > > 23 chr22 51304566 > > 24 chr21 48129895 > > > I want to drop the "chr" and order the chrom column in ascending order with > X & Y at the end. > > I have tried converting the chrom into a character vector and using the > strsplit function, but then I have to circle back and do a lot of editing > to make it work. > > I could do this in excel or some other program, but again I'm really trying > to learn R and if I had to do something 100 times working in R would be so > much better. I did however write the above to an excel spreadsheet and did > the simple edits I need to make a bar chart. Using bar plot I was able to > make a nice simple figure, but it isn't necessarily as aesthetically > pleasing as the figures made in ggplot2 or other packages. So when I made > the same figure in ggplot2 it worked, but reordered the chrom column as 1, > 10, 11, 12......X,Y. I figured out this is because the package orders > things in an a-b-c type of fashion. I could resort the column as a factors > and manually define the levels, but again I'm trying to learn R and make it > work more efficiently for my purposes in the future. > > > Could someone help me understand how I could accomplishing taking the above > data.frame, splitting it / dropping chr, ordering it, and then graphing it? > > > Thank you in advance for your help. I've tried working on this for the past > day and a half but can't figure it out, and the learning phase is really > costing me in terms of being productive. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org 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. > -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.