2016-05-03 14 views
1

各実行の最後の要素のインデックスを取得するにはどうすればよいですか?例えばベクトル内の各実行の最後の要素のインデックスを取得します

: たちはベクトル

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) 

それは望ましい結果を与えていません。

+3

'cumsum(rle(x)$ lengths)' –

+0

@docendodiscimus投稿を使用できますか? –

+2

もう一つのオプションは 'tapply(seq_along(x)、x、FUN = tail、1)'です。 – akrun

答えて

5

(おそらくだまされやすい人が、ここであなたが行く...)

あなたはcumsumと組み合わせ?rleの魔法の力を使用することができます:rleの出力がある

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

を:

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 
+0

ありがとうございました – Janak

1

Rでの()関数の使用R

k<-as.vector(unique(x)) 
    x1<-vector() 
    for(i in 1:length(k)){ 
     x1[i]=tail(which(x==k[i]),1) 
    } 
+0

あなたの答えをありがとう。 – Janak

関連する問題