如何获取每次运行的最后一个元素的索引?
例如:让我们考虑一个向量
x=c(1,2,3,4,4,4,5,6,6,7,8,9,9,9,9)
Run Code Online (Sandbox Code Playgroud)
想要获得输出向量
x1=1 2 3 6 7 9 10 11 15
Run Code Online (Sandbox Code Playgroud)
尝试使用:
rank(x)
Run Code Online (Sandbox Code Playgroud)
它没有给出理想的结果.
(可能是一个骗局,但在这里你去..)
你可以使用神奇的力量?rle结合cumsum:
cumsum(rle(x)$lengths)
#[1] 1 2 3 6 7 9 10 11 15
Run Code Online (Sandbox Code Playgroud)
输出rle是:
rle(x)
#Run Length Encoding
# lengths: int [1:9] 1 1 1 3 1 2 1 1 4
# values : num [1:9] 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)