Пакет R data.table
имеет функцию rleid
, которая присваивает целое число каждому элементу вектора, причем смежные элементы с одинаковыми значениями получают одно и то же целое число.Надеюсь, этот пример в R объясняет, что делает rleid
, здесь y
равно rleid(x)
.
library(data.table)
ex <- data.frame(x = c(1, 1, 4, 4, 1, 3, 3, 4, 4, 4, 1))
ex$y <- rleid(ex$x)
print(ex)
# x y
# 1 1 1
# 2 1 1
# 3 4 2
# 4 4 2
# 5 1 3
# 6 3 4
# 7 3 4
# 8 4 5
# 9 4 5
# 10 4 5
# 11 1 6
Каков наилучший способ создания y
в SAS для указанного ниже набора данных?(Здесь x
совпадает с примером R)
data ex;
input x;
cards;
1
1
4
4
1
3
3
4
4
4
1
;
run;