我的问题很简单但不知何故我无法理解。
我有一个增加的数值向量,其值不是唯一的。
a <- c(1,2,4,4,7,7,7,9,12,25,25,26)
我想创建另一个列b,它将为我提供向量a的每个元素的相应级别。这里,b是:
b <- c(1,2,3,3,4,4,4,5,6,7,7,8)
有人可以帮助我如何实现它?
答案 0 :(得分:3)
这应该这样做:
as.integer(factor(a))
或者这可能更好:
match(a, unique(a))
答案 1 :(得分:1)
使用cumsum
和diff
,希望有所帮助,谢谢。
b=cumsum(c(TRUE,diff(a)!=0))
b
[1] 1 2 3 3 4 4 4 5 6 7 7 8
答案 2 :(得分:1)
此外,
findInterval(a, unique(a))
#[1] 1 2 3 3 4 4 4 5 6 7 7 8