R でサンプラーをプログラミングしていますが、これは基本的に大きな for ループであり、反復ごとにベクトル内の遷移の数をカウントする必要があります。0 と 1 を含む k という名前のベクトルがあり、ベクトルには 1000 のエントリがあります。
次の、恐ろしく遅いコードを使用しました。
#we determine the number of transitions n00,n01,n10,n11
n00=n01=n10=n11=0 #reset number of transitions between states from last time
for(j in 1:(1000-1)){
if(k[j+1]==1 && k[j]==0) {n01<-n01+1}
else { if(k[j+1]==1 && k[j]==1) {n11<-n11+1}
else { if(k[j+1]==0 && k[j]==1) {n10<-n10+1}
else{n00<-n00+1}
}
}
}
したがって、ループが進むたびに、変数 n00、n01、n10、n11 はベクトル内の遷移をカウントします。たとえば、n00 は、0 の後に別の 0 が続く回数をカウントします。
これは非常に遅く、私は R に非常に慣れていないので、ここではちょっと必死です。可能であれば、grepの使用方法がわかりません。
ご協力ありがとうございました