1

Rを使用して、インデックスからの文字値のシーケンスの変更の数をカウントするための最良の方法は何でしょうか。たとえば、私は固定数のサイトを持っています:

sites<-as.factor(LETTERS[seq(from=1,to=20)])

それらの場所から、いくつかは保護されていますが、他の場所は釣りに開放されています、

protected<-as.factor(c("A","D","E","M","L","S"))

シミュレーションを使用して、この一連のサイト(保護されたサイトと保護されていないサイトの組み合わせ)を取得しました

result<-as.factor(c("A","A","A","B","C","D","D","L","L","F","F","T","S","N"))

基本的に、結果シーケンスで「保護された」サイトから「保護されていない」サイトに変更された回数をカウントしたいと思います。この例では、保護されたサイトである「A」が保護されていない「B」に移動しているため(1回の移動)、「B」は「C」に移動しているため、私が探している答えは3になります。両方とも保護されていないので変化しません)、...、「L」から「N」(2つの動き)など。

4

1 に答える 1

3

%in%とdiffを使用して、保護から非保護に変更する場所を見つけます。次に、必要な値をカウントアップします。ここで、保護->非保護は-1になります。

sum(diff(result %in% protected) < 0)
于 2012-11-21T01:45:17.613 に答える