# [R] sort a data.frame

Mohamed Lajnef Mohamed.lajnef at inserm.fr
Thu May 20 15:25:20 CEST 2010

```The solution given by Jim is more correct

dd[order(as.numeric(substr(dd\$b,4,5))),]

regards
M
jim holtman a écrit :
>> 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
>
>> # add column with just numbers
>> dd\$sort <- as.integer(gsub("\\D+", "", dd\$b))
>> dd[order(dd\$sort),]  # notice it is a numeric, not character order
>>
>       b x y z sort
> 2  chr1 D 3 1    1
> 1  chr2 A 8 1    2
> 4 chr13 C 9 2   13
> 3 chr15 A 9 1   15
>
>
>
> On Thu, May 20, 2010 at 8:28 AM, Yuan Jian <jayuan2008 at yahoo.com> 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 at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help