Rank per row over multiple columns in R

后端 未结 2 1986
猫巷女王i
猫巷女王i 2020-12-06 02:01

I\'m using R for the analysis of my masterthesis. Unfortunately, I got stuck with this problem:

I would like to compute a new variable which calculates the rank of

相关标签:
2条回答
  • 2020-12-06 02:40

    ?rank and see how to handle ties.

    x <- cbind(a=c(11,22,44),
           b=c(21,12,22),
           c=c(35,66,12))
    > x
          a  b  c
    [1,] 11 21 35
    [2,] 22 12 66
    [3,] 44 22 12
    

    EDITED 2018-10-22

    Now, rank on

    rows

     t(apply(-x, 1, rank))
         a b c
    [1,] 3 2 1
    [2,] 2 3 1
    [3,] 1 2 3
    

    or columns

    apply(x, 2, rank)
         a b c
    [1,] 3 1 3
    [2,] 2 2 1
    [3,] 1 3 2
    
    0 讨论(0)
  • 2020-12-06 02:50

    You're looking for rank. To get decreasing order, first negate the data.frame.

    data.frame(d, t(apply(-d, 1, rank, ties.method='min')))
    #   V1 V2 V3 V1.1 V2.1 V3.1
    # 1 11 21 35    3    2    1
    # 2 22 12 66    2    3    1
    # 3 44 22 12    1    2    3
    
    0 讨论(0)
提交回复
热议问题