所以我有一个如下所示的列表
1. a
2. a
3. b
4. b
5. c
6. c
7. a
8. a
Run Code Online (Sandbox Code Playgroud)
是否有可能根据R中每个值的顺序得到一个数字列表:
1. 1
2. 2
3. 1
4. 2
5. 1
6. 2
7. 3
8. 4
Run Code Online (Sandbox Code Playgroud)
你可以用ave.假设您的向量被称为"x",请尝试:
ave(x, x, FUN = seq_along)
# [1] "1" "2" "1" "2" "1" "2" "3" "4"
Run Code Online (Sandbox Code Playgroud)
这是完全矫枉过正,但从getanID我的"splitstackshape"包中也做到了这一点:
library(splitstackshape)
getanID(as.data.table(x), "x")
# x .id
# 1: a 1
# 2: a 2
# 3: b 1
# 4: b 2
# 5: c 1
# 6: c 2
# 7: a 3
# 8: a 4
Run Code Online (Sandbox Code Playgroud)
x <- c("a", "a", "b", "b", "c", "c", "a", "a")
Run Code Online (Sandbox Code Playgroud)