[R] sort a data frame by a vector

David Winsemius dwinsemius at comcast.net
Wed Dec 2 05:09:28 CET 2009


On Dec 1, 2009, at 10:59 PM, jim holtman wrote:

> The factor statement should have been:  (missed the 'vec' on the  
> first reading)
>
> dataDF$A1 <- factor(dataDF$A1, levels=vec)

It's not necessary to alter the data.frame. You can use the results of  
the construction above as the row index and still keep the original  
order:

 > dataDF[factor(dataDF$A1, levels=vec), ]
   A1 A2
3  C  3
2  A  2
1  B  1

 > dataDF
   A1 A2
1  B  1
2  A  2
3  C  3

-- 
David.
>
> On Tue, Dec 1, 2009 at 10:57 PM, jim holtman <jholtman at gmail.com>  
> wrote:
>> Is this what you want:
>>
>>> dataDF = data.frame(A1 = c("B", "A", "C"), A2 = c(1,2,3))
>>> dataDF
>>  A1 A2
>> 1  B  1
>> 2  A  2
>> 3  C  3
>>> dataDF[order(dataDF$A1),]
>>  A1 A2
>> 2  A  2
>> 1  B  1
>> 3  C  3
>>>
>>
>> If you want the sequence "CAB" then you will have to change the
>> factors in column 1:
>>
>>> dataDF$A1 <- factor(dataDF$A1, levels=c("C", "A", "B"))
>>> dataDF[order(dataDF$A1),]
>>  A1 A2
>> 3  C  3
>> 2  A  2
>> 1  B  1
>>>
>>
>>
>> On Tue, Dec 1, 2009 at 10:36 PM, Hao Cen <hcen at andrew.cmu.edu> wrote:
>>> Hi,
>>>
>>>
>>>
>>> I have a a vector  and a data frame with two columns
>>>
>>> vec = c("C", "A", "B")
>>>
>>> dataDF = data.frame(A1 = c("B", "A", "C"), A2 = c(1,2,3))
>>>
>>>
>>>
>>> I would like to sort the data frame by column A1 such that the  
>>> order of
>>> elements in A1 is as the same as in vec.
>>>
>>>
>>>
>>> After the ordering, the data frame would be
>>>
>>> A1           A2
>>>
>>> C             3
>>>
>>> A             2
>>>
>>> B             1
>>>
>>>
>>>
>>> Any suggestions would be appreciated.
>>>
>>>
>>>
>>> Thanks in advance
>>>
>>>
>>>
>>> Jeff
>>>
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at 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.
>>>
>>
>>
>>
>> --
>> Jim Holtman
>> Cincinnati, OH
>> +1 513 646 9390
>>
>> What is the problem that you are trying to solve?
>>
>
>
>
> -- 
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem that you are trying to solve?
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list