Yes, you are absolutely right. First we need to define "Close". Honestly I am also confuse. Actually this is someone else projects who left and now I am responsible to continue working on it. It is an ongoing project and my supervisor wants me to continue working on it the same way previous person was doing. She used STATA for analysis, and I have no background knowledge of STATA. I got most of her work but only this part of coding is difficult to understand. Below are STATA codes, it might help you. What I am understanding that data is sorted at id, ts_ser, and ts and then notecount variable has retained based on if ((ts_ser=lag(ts_ser) or ((ts_ser-ts_ser) le 2 min))) or (ts=lag(ts) or ((ts-ts) le 2 min))). In codes below, I think 2000= 2minutes. I am hoping I am making some sense to you. Thanks set more off local i=1 while `i'<7 { while inlist(`i',1,3,5) { local j=1 sort id ts_ser ts while `j'<100 { replace notecount=notecount[_n+1] if notecount==. & notecount[_n+1]!=. & id==id[_n+1] & /// (ts_ser==ts_ser[_n+1] | abs(ts_ser-ts_ser[_n+1])<=2000 | ts==ts[_n+1] | abs(ts-ts[_n+1])<=2000) replace notecount=notecount[_n-1] if notecount==. & notecount[_n-1]!=. & id==id[_n-1] & /// (ts_ser==ts_ser[_n-1] | abs(ts_ser-ts_ser[_n-1])<=2000 | ts==ts[_n-1] | abs(ts-ts[_n-1])<=2000) local j=`j'+1 } local i=`i'+1 } while inlist(`i',2,4,6) { local j=1 sort id ts ts_ser while `j'<100 { replace notecount=notecount[_n+1] if notecount==. & notecount[_n+1]!=. & id==id[_n+1] & /// (ts_ser==ts_ser[_n+1] | abs(ts_ser-ts_ser[_n+1])<=2000 | ts==ts[_n+1] | abs(ts-ts[_n+1])<=2000) replace notecount=notecount[_n-1] if notecount==. & notecount[_n-1]!=. & id==id[_n-1] & /// (ts_ser==ts_ser[_n-1] | abs(ts_ser-ts_ser[_n-1])<=2000 | ts==ts[_n-1] | abs(ts-ts[_n-1])<=2000) local j=`j'+1 } local i=`i'+1 } }
... View more