[R] rank/sort problem

Bert Gunter bgunter.4567 at gmail.com
Sat Nov 21 16:46:29 CET 2015


I did not read your post in detail but have you not looked at ?rank ?


Cheers,
Bert


Bert Gunter

"Data is not information. Information is not knowledge. And knowledge
is certainly not wisdom."
   -- Clifford Stoll


On Sat, Nov 21, 2015 at 4:44 AM, Axel Urbiz <axel.urbiz at gmail.com> wrote:
> Hello,
>
> I would like to sort the df below, such that it sorts y1 in decreasing order for tt == 1 and in increasing order for
> tt == 0. My solution is below, but curious if there might be something better (meaning faster in this case).
>
> Actually, if instead if implicitly sorting, I could add a variable ‘rank’ as in my ‘hope’ data frame below, that would work too (as I just need the ranking of observations, not necessarily the data explicitly sorted in the results).
>
> ### Sample data
> y1 <- c(50,100,200,20,400,100,500,1000,12,25)
> tt <- factor(c(1,1,1,0,0,0,0,1,0,0))
> df <- data.frame(y1, tt)
>
> ### My solution
> library(dplyr)
> sorted <- rbind(df[df$tt == 1, ] %>% arrange(desc(y1)),
>                 df[df$tt == 0, ] %>% arrange(y1))
>
> ### What I hope to get
> hope <- data.frame(df,
>                    rank = c(4, 3, 2, 6, 9, 8, 10, 1, 5, 7))
> hope[order(hope$rank),]
>
>
> Thanks for any help.
>
> Best Axel.
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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