各位老师好!
我想就下面一段代码的几个语句的含义请教一下:
data runcount;
set two nobs=nobs end=last;
retain runs 0 numpos 0;
prevpos=( lag(D) GE 0 );
currpos=( D GE 0 );
if currpos and prevpos then do;numpos+1;end;
else if currpos and ^prevpos then do;
runs+1;
numpos+1;
end;
else if ^currpos and prevpos then runs+1;
if last then do;
numneg=nobs-numpos;
n=nobs;
output;
end;
keep runs numpos numneg n;
run;
1) retain runs 0 numpos 0; 是在生成 runs 和numpos变量的时候,始终把runs和numpos的值从0开始计算吗?
2) prevpos=( lag(D) GE 0 ); currpos=( D GE 0 );这两句话是什么意思呢? 变量prevpos和currpos的取值是怎样的?
3) if currpos and prevpos then do; 这里 的条件语句currpos and prevpos 是和谁进行比较?
谢谢老师!