[R] sort a data frame by a vector

jim holtman
Wed, 02 Dec 2009 03:57:33 -0000

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?