获取向量中每次运行的最后一个元素的索引

时间:2016-05-03 11:14:32

标签: r

如何获取每次运行的最后一个元素的索引?

例如: 让我们考虑一个向量

x=c(1,2,3,4,4,4,5,6,6,7,8,9,9,9,9) 

想要获得输出向量

x1=1 2 3 6 7 9 10 11 15

尝试使用:

rank(x)

没有给出理想的结果。

2 个答案:

答案 0 :(得分:5)

(可能是一个傻瓜,但是你走了......)

您可以使用?rlecumsum结合的神奇力量:

cumsum(rle(x)$lengths)
#[1]  1  2  3  6  7  9 10 11 15

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

答案 1 :(得分:1)

使用R

中的which()函数
    k<-as.vector(unique(x))
    x1<-vector()
    for(i in 1:length(k)){
        x1[i]=tail(which(x==k[i]),1)
    }
相关问题