5

私はベクトルを持っています:

test <-c(1,1,0,2,2,3,4,1,1,0)  
test  
# [1] 1 1 0 2 2 3 4 1 1 0

値がいつ変化するかを示すグループ化変数を作成したいと思います。

# [1] 1 1 2 3 3 4 5 6 6 7

これを行う最善の方法は何ですか?

4

2 に答える 2

4

確かに数値データに対してのみ機能する代替オプション。

test <-c(1,1,0,2,2,3,4,1,1,0)  
cumsum(c(1L, diff(test) != 0))
# [1] 1 1 2 3 3 4 5 6 6 7

そして、あらゆるデータ型で機能する複雑なバリエーション:

head(cumsum(c(TRUE, c(tail(test, -1), NA) != test)), -1)
# [1] 1 1 2 3 3 4 5 6 6 7
于 2013-07-09T03:20:00.993 に答える