![](/img/trans.png)
[英]How to use an existing dummy variable to create a new one that takes the value 1 for certain lead observations within a group
[英]SAS: Coding a dummy variable for a value of a variable by group within group
我有一個CASE_ID(xy和z)數據集,每個CASE_ID的一組多個日期(包括重復的日期)和一個變量VAR。 我想在一個組內按組創建一個虛擬變量DUMMYVAR,如果在某個特定日期,如果CASE_ID x的值是VAR =“ C”,那么該日期對應於CASE_ID x的所有觀察值的值DUMMYVAR = 1。
我相信Classic 2XDOW將是關鍵,但這是我第三周使用SAS,並且在這里很難被兩個BY組獲得。
我已經參考並嘗試在此處編寫Haikuo代碼的變體:
PROC SORT have;
by CASE_ID DATE;
RUN;
data want;
do until (last.DATE);
set HAVE;
by date notsorted;
if var='c' then DUMMYVAR=1;
do until (last.DATE);
set HAVE;
by DATE notsorted;
if DATE=1 then ????????
end;
run;
更改您的BY語句以匹配您正在執行的分組。 在第二個循環中,添加一個簡單的OUTPUT;
聲明。 然后,新數據集將具有原始數據集中的所有行以及新變量DUMMYVAR。
data want;
do until (last.DATE);
set HAVE;
by case_id date;
if var='c' then DUMMYVAR=1;
end;
do until (last.DATE);
set HAVE;
by case_id date;
output;
end;
run;
這將創建值為1或缺失的變量DUMMYVAR。 如果希望值是1或0,則可以在第一個DO循環之前將其設置為0。 或添加if first.date then dummyvar=0;
添加if first.date then dummyvar=0;
在現有IF語句之前的語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.