思考问题

2018-04-07  本文已影响0人  smile_lucky爱上阳光

问题:怎样确定一个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

                }

            }

上一篇 下一篇

猜你喜欢

热点阅读