根据R中的顺序对矢量进行排名

hor*_*ora 1 r rank

我想对数据框的一列进行排名,但我希望根据其顺序而不是按升序或降序对其进行排名.如下所示:

> test <- c(0,0,0,2,1,5,3)
Run Code Online (Sandbox Code Playgroud)

然后排名如下:

[1] 1 1 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

这样做最简单的方法是什么?先感谢您.

Mar*_*ius 8

用途rle:

test = c(0,0,0,2,1,5,3)
rle_test = rle(test)
ordered = rep(1:length(rle_test$lengths), rle_test$lengths)
Run Code Online (Sandbox Code Playgroud)

输出:

> ordered
[1] 1 1 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)