簡體   English   中英

保留SAS中組中變量的值

[英]Retain the value of a variable within a group in 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以在各個觀察中保留其值,然后在var1看到1時將其設置為1; 最后,在看到first.id行時將其設置為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM