2016-04-28 17 views
1

で表示された場合、私はこのようになりますベクトルを持ってそれを残す:私が欲しいもの連続で重複値を削除しますが、それは後でR

t <- c(2,2,3,3,3,2,2,3,4,2,2,2,3,3,10,10,10,1,10,10) 

はこのように見ている新しいベクトルが残される簡単な方法です:

t2 <- c(2,3,2,3,4,2,3,10,1,10) 

すべての異なる要素を(tに表示されているとおりの正しい順序で)保持しますが、それぞれ1つのみです。好ましくはループなしで、一般に私のベクトルは約6000,000要素ですので

私はMatlabにも同様の問題と解決策を見出しましたが、Rで実装することはできず、数字間の増減のパターンもありました、これはrle機能からわずかvaluesある

Remove duplicates appearing next to each other, but keep it if it appears again later

答えて

3

私の場合はそうではありませんどの:

> rle(t)$values 
[1] 2 3 2 3 4 2 3 10 1 10 

フル出力は、カウントを含みそれぞれの繰り返しのs。ここではvaluesコンポーネントを取得するだけです。

それとも、このようになりますこれは、MATLABコードの参照と同じアルゴリズムを使用することができます。

> t[c(1,diff(t))!=0] 
[1] 2 3 2 3 4 2 3 10 1 10 
+0

は、それが動作します、ありがとうございました!! –

関連する問題