我想计算一个向量中每个索引的等级,例如:
x <- c(0.82324952352792, 0.11953364405781, 0.588659686036408, 0.41683742380701,
0.11452184105292, 0.438547774450853, 0.586471405345947, 0.943002870306373,
0.28184655145742, 0.722095313714817)
calcRank <- function(x){
sorted <- x[order(x)]
ranks <- sapply(x, function(x) which(sorted==x))
return(ranks)
}
calcRank(x)
> calcRank(x)
[1] 9 2 7 4 1 5 6 10 3 8
有更好的方法吗?
答案 0 :(得分:13)
为什么不呢:
rank(x) # ..... ?
# [1] 9 2 7 4 1 5 6 10 3 8
答案 1 :(得分:6)
match
就是你想要的:
match(x, sort(x))