问题:怎样确定一个0和1变量中的连续变量,并把连续的非0变量个数累加?
比如:index1= 0 1 1 0 0 0 1 0
最后得到的是:index2=0 2 0 0 1
思路:尝试了从是1的位置入手和从0的位置入手两种方法,均被自己绕进去了,最后倒序来叠加,解决了。
方案:拆分问题——step1: 0 1 1 0 0 0 1 0 变为 0 2 0 0 0 0 1 0
step2: 0 2 0 0 0 0 1 0变为 0 2 0 0 1 0
code: index=c(0,1,1,0,0,0,1,0)
rm=which(index==1)
for( j in (length(index)-1):1){
if(index[j]==1){
index[j]=index[j]+index[j+1]
index[j+1]=0
}
}
网友评论