保留SAS中组中变量的值

齿

我想创建一个变量Var2,该变量从第一个观察值开始等于1,并且Var2等于1,直到ID定义的by组的末尾为止。这是最小的工作示例:

ID年Var1
1 1。
1 2 0
1 3。
1 4 1
1 5。

我想创建以下输出:

ID年Var1 Var2
1 1。
1 2 0 0
1 3。0
1 4 1 1
1 5。1个

我当前的代码如下:

 DATA data1;
SET data0;
BY ID YEAR ;
IF LAST.ID THEN END = _N_;
IF Var1 > 0 THEN CNT=_N_;
RUN;
DATA data2;
SET data1;
BY ID YEAR ;
Var2 = 0;
IF Var1 = 1 THEN DO;
    DO I = CNT TO END;
        Var[I] = 1; 
    END;
END;
RUN;

但是,SAS不会随观察结果循环。

我不确定您的示例在做什么,但这很简单。

data want;
  set have;
  by id;
  retain var2;
  if first.id then var2=0;
  if var1=1 then var2=1;
run;

保留var2以保持其在各个观察值中的值,然后在看到1中的时将其设置为1 var1最后,在看到first.id一行时将其设置为0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章