我有这个字符串向量(strings_input),我想把它变成一个像expected_output一样的数字向量。
strings_input <- c("a", "a", "b", "b", "b", "c", "c", "a", "b", "b")
some function:
expected_output <- c(1, 1, 2, 2, 2, 3, 3, 4, 5, 5)
使用data.table::rleid
:
data.table::rleid(strings_input)
# [1] 1 1 2 2 2 3 3 4 5 5
Or in base R:
with(rle(strings_input), rep(seq(lengths), lengths))
# [1] 1 1 2 2 2 3 3 4 5 5
还有一个dplyr
的consecutive_id
:
dplyr::consecutive_id(strings_input)
# [1] 1 1 2 2 2 3 3 4 5 5