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 <jorgeivanvelez@gmail.com> wrote:

From: Jorge Ivan Velez <jorgeivanvelez@gmail.com>
Subject: Re: [R] sort a data.frame
To: "Yuan Jian" <jayuan2008@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]]

