[R] Sorting data.frame and again sorting within data.frame
Jeff Newmiller
jdnewmil at dcn.davis.CA.us
Mon Apr 15 09:40:26 CEST 2013
The examples in ?order show a method that could be applied if you avoid the decreasing argument and instead convert the Date to numeric for purposes of sorting.
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
Katherine Gobin <katherine_gobin at yahoo.com> wrote:
>Dear R forum,
>
>I have a data.frame as defied below -
>
>df = data.frame(names = c("C", "A", "A", "B", "C", "B", "A", "B", "C"),
>dates = c("4/15/2013", "4/13/2013", "4/15/2013", "4/13/2013",
>"4/13/2013", "4/15/2013", "4/14/2013", "4/14/2013","4/14/2013" ),values
>= c(10, 31, 31, 17, 11, 34, 102, 47, 29))
>
>> df
>� names���� dates values
>1���� C 4/15/2013���� 10
>2���� A 4/13/2013���� 31
>3���� A 4/15/2013���� 31
>4���� B 4/13/2013���� 17
>5���� C 4/13/2013���� 11
>6���� B
> 4/15/2013���� 34
>7���� A 4/14/2013��� 102
>8���� B 4/14/2013���� 47
>9���� C 4/14/2013���� 29
>
>I need to sort df first on "names" in increasing order and then further
>on "dates" in a decreasing order i.e. I need
>
>names������� dates������� values
>A����������� 4/15/2013����� 31
>A����������� 4/14/2013���� 102
>A����������� 4/13/2013����� 31
>B����������� 4/15/2013�����
> 34
>B����������� 4/14/2013����� 47
>B����������� 4/13/2013����� 17
>C����������� 4/15/2013����� 10
>C����������� 4/14/2013����� 29
>C����������� 4/13/2013����� 11
>
>I tried
>
>df_sorted = df[order(df$names, (as.Date(df$dates, "%m/%d/%Y")),
>decreasing = TRUE),]
>
>> df_sorted
>� names���� dates values
>1���� C 4/15/2013���� 10
>9���� C 4/14/2013���� 29
>5���� C 4/13/2013����
> 11
>6���� B 4/15/2013���� 34
>8���� B 4/14/2013���� 47
>4���� B 4/13/2013���� 17
>3���� A 4/15/2013���� 31
>7���� A 4/14/2013��� 102
>2���� A 4/13/2013���� 31
>
>
>I need A to appear first with all three corresponding dates in
>decreasing order, then B and so on.
>
>Please guide.
>
>With regards
>
>Katherine
>
>
> [[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.
More information about the R-help
mailing list