我想在R中订购一个序列,其中所有数字相邻,并且联系计数相同。例如
Aorder(1,1,40,50,2,40,2)
[1] 1 1 3 4 2 3 2
与订单相反:
order(c(1,1,40,50,2,40,2))
[1] 1 2 5 7 3 6 4
答案 0 :(得分:3)
这比使用factor
:
x <- c(1,1,40,50,2,40,2)
match(x, sort(unique(x)))
#[1] 1 1 3 4 2 3 2
答案 1 :(得分:2)
rank
功能可以帮助您解决问题,但不能满足您的要求:
rank(x, ties.method="min")
# [1] 1 1 5 7 3 5 3
更简单的方法是使用factor
和as.numeric
代替:
as.numeric(factor(x, sort(unique(x))))
# [1] 1 1 3 4 2 3 2