Mit*_*ops 2 r ranking ranking-functions
我有一个看起来像这样的矢量:
> vec
[1] 1 1 2 5 10
Run Code Online (Sandbox Code Playgroud)
我正试图将其转换为一种非奥林匹克排名形式,其中关系仍然是关系,但排名保持1分,即使在它之上有多个关系,所以:
> f(vec)
[1] 1 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
而不是:
> rank(vec,ties.method="min")
[1] 1 1 3 4 5
Run Code Online (Sandbox Code Playgroud)
是否有功能在R中已经这样做了?我知道我可以将值转换为因子然后对因子进行排名,但这看起来有点迂回.(如果不是函数,是否有这种排名的名称?)
(乐趣:我之前没有注意到这一点,但看起来排名是幂等的,这有点酷:
> rank(vec,ties.method="min")
[1] 1 1 3 4 5
> rank(rank(vec,ties.method="min"),ties.method="min")
[1] 1 1 3 4 5
Run Code Online (Sandbox Code Playgroud)
)
试试这个:
vec <- c(1,1,2,5,10)
> as.integer(factor(vec))
[1] 1 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我意识到你现在提到了因素路线.就个人而言,我并不觉得它非常冒犯.
或者你可以达到factor自己的代码并做一些大致相当的事情:
match(vec,unique(vec))
Run Code Online (Sandbox Code Playgroud)
但是假设这vec是排序的,所以也许你真的需要做类似的事情
match(vec,sort(unique(vec)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |