How to get ranks with no gaps when there are ties among values?

后端 未结 8 1302
感情败类
感情败类 2020-12-03 14:26

When there are ties in the original data, is there a way to create a ranking without gaps in the ranks (consecutive, integer rank values)? Suppose:

x <-           


        
8条回答
  •  忘掉有多难
    2020-12-03 15:02

    Modified crayola solution but using match instead of merge:

    x_unique <- unique(x)
    x_ranks <- rank(x_unique)
    x_ranks[match(x,x_unique)]
    

    edit

    or in a one-liner, as per @hadley 's comment:

    match(x, sort(unique(x)))
    

提交回复
热议问题