假设有以下数据集:
data DB;
input ID :$20. Admission :date09. Discharge :date09. Variable;
cards;
166 16FEB2019 26FEB2019 1
170 13JAN2017 25JAN2017 0
170 22FEB2017 07MAR2017 1
170 27APR2017 16MAY2017 1
170 30JAN2019 04MAR2019 0
313 03MAR2016 10MAR2016 1
;
run;
data DB1;
input ID :$20. Admission :date09. Discharge :date09. Variable_;
cards;
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
170 22FEB2017 07MAR2017 0
170 13JAN2017 25JAN2017 0
170 30JAN2019 04MAR2019 1
170 13JAN2017 25JAN2017 0
170 30JAN2019 04MAR2019 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
313 03MAR2016 10MAR2016 0
313 03MAR2016 10MAR2016 0
313 03MAR2016 10MAR2016 0
;
run;
有没有办法将 DB1 中的 Variable_ 值与 DB 中相应日期和 BY ID 的变量进行比较?正如您在 DB1 中看到的那样,一些日期被复制,并且当发生这种情况时,Variable_ 的值也被复制,因此在复制日期时不可能有 1 或 0,而始终是 1 或 0。所需的输出应该是:
data DB2;
input ID :$20. Admission :date09. Discharge :date09. Variable New_Var;
cards;
166 16FEB2019 26FEB2019 1 0
170 13JAN2017 25JAN2017 0 0
170 22FEB2017 07MAR2017 1 0
170 27APR2017 16MAY2017 1 0
170 30JAN2019 04MAR2019 0 1
313 03MAR2016 10MAR2016 1 0
;
run;
换句话说,应该在 DB 中创建一个名为“New_Var”的新变量,仅当 DB1 中的 Variable_ = 1 且 DB 中的 Variable = 0 时,该变量才等于 1。
先感谢您
尝试一下
结果: