it's a excellent solution. I am sorry I missed something in my question. the column b consists of not only number but also one letter after "chr", for example chrX, chrY. I want to put them after number but in the order of ASCII. i.e. chr1<chr2<....<chr9<chr10<...<chr22<chrA<...chrX<chrY
if I have dataframe dd <- data.frame(b = c("chr2", "chr1", "chrY", "chr13", "chrX"), x = c("A", "D", "A", "C", "C"), y = c(8, 3, 9, 9,7), z = c(1, 1, 1, 2, 8)) the expected result b x y z 1 chr1 D 3 1 2 chr2 A 8 1 3 chr13 C 9 2 4 chrX C 7 8 5 chrY A 9 1 --- On Thu, 20/5/10, Jorge Ivan Velez <jorgeivanve...@gmail.com> wrote: From: Jorge Ivan Velez <jorgeivanve...@gmail.com> Subject: Re: [R] sort a data.frame To: "Yuan Jian" <jayuan2...@yahoo.com> Cc: r-help@r-project.org Received: Thursday, 20 May, 2010, 1:31 PM Hi Yuan, Try dd[order(as.numeric(gsub("[^0-9]", "", dd$b))), ] HTH,Jorge On Thu, May 20, 2010 at 8:28 AM, Yuan Jian <> wrote: Hello, I have a dataframe: dd <- data.frame(b = c("chr2", "chr1", "chr15", "chr13"), x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9), z = c(1, 1, 1, 2)) >dd b x y z 1 chr2 A 8 1 2 chr1 D 3 1 3 chr15 A 9 1 4 chr13 C 9 2 Now I want to sort them according column "b", but only its number is considered: b x y z 1 chr1 D 3 1 2 chr13 C 9 2 3 chr15 A 9 1 4 chr2 A 8 1 thanks jian [[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. [[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.