Rでベクトル内のの連続するパタンの出現する位置を検索.
- 入力例:
#ベクトル
x<-c(1,2,3,3,3,3,2,3,3,3)
#パタン
patan<-c(3,3,3)
- 出力例:
macthing_vector(x,patan)
[1] 3 4 8
- プログラム
x<-c(1,2,3,3,3,3,2,3,3,3) patan<-c(3,3,3) macthing_vector<-function(x,patan){ patan_length<-length(patan) for(i in 1:patan_length){ if(i==1){ l<-which(x==patan[i]) }else{ z<-x[i:length(x)] l123<-which(z==patan[i]) l<-intersect(l,l123) } } l } macthing_vector(x,patan)
- 多体相関の計算への応用
patan<-c(1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1) p<-macthing_vector(kkkb,patan)+length(patan) p<-p[1:(length(p)-length(patan))] (length(which(kkkb[p]==1))+0.0)/(length(kkkb[p])+0.0)