[R] sort a data.frame

Dejian Zhao zhaodj at ioz.ac.cn
Fri May 21 02:48:52 CEST 2010


 If you want to sort the data frame according to column "b", the 
followding code does this work.
attach(dd)
dd<-dd[order(b),]
detach(dd)

If you want to sort the data frame according to the chr number in column 
b, you should extract the numbers first into a vector, say chrnum, and 
then use order(chrnum) as the index to sort the data frame dd. Suppose 
that the chr numbers have been extracted to vector chrnum. The code is 
as follows:
chrnum <-c(2,1,15,13)
attach(dd)
dd<-dd[order(chrnum),]
detach(dd)

The result is
 > dd
       b x y z
2  chr1 D 3 1
1  chr2 A 8 1
4 chr13 C 9 2
3 chr15 A 9 1

But I don't know how to extract the numbers conveniently.
Please respond if anyone knows.
Many thanks!


On 05/20/2010 08:28 PM, 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
>
>
>



More information about the R-help mailing list