【发布时间】:2018-08-15 17:36:57
【问题描述】:
感谢您的帮助!
我想要的向量:
s = c(2, 2, 2, 4, 4, 3, 5, 1)
成为
s = c(1, 1, 1, 2, 2, 3, 4, 5).
我没有排序!
【问题讨论】:
标签: r
感谢您的帮助!
我想要的向量:
s = c(2, 2, 2, 4, 4, 3, 5, 1)
成为
s = c(1, 1, 1, 2, 2, 3, 4, 5).
我没有排序!
【问题讨论】:
标签: r
使用rleid
data.table::rleid(s)
[1] 1 1 1 2 2 3 4 5
【讨论】:
在基础 R
cumsum(c(TRUE, diff(s) != 0))
#[1] 1 1 1 2 2 3 4 5
【讨论】:
使用基础 R 中的 rle 和 inverse.rle。
s <- c(2, 2, 2, 4, 4, 3, 5, 1)
rl <- rle(s)
rl$values <- sort(unique(s))
s <- inverse.rle(rl)
s
# [1] 1 1 1 2 2 3 4 5
【讨论】: