我正在尝试在SAS中将每个id的观察间隔保存在一年之内。
我对每个id都有不同程度的迷恋。每个观察都有一个名为date1的访问日期和一个称为datum_sistahandelse的参考日期(这并不会对每个id的观察进行更改,而是在id之间进行更改)。日期的格式为YYYY-MM-DD。我只想保留date1晚于datum_sistahandelse但不超过一年的观察值。 因此,如果ID#1 datum_sistahandelse = 2014-02-03,那么我想保留date1在2014-02-04和2015-02-04之间的所有观察值。 对于ID#2 datum_sistahandelse = 2015-05-13,我想保留date1在2015-05-14和2016-05-14之间的所有观察值。 等等
谢谢
答案 0 :(得分:0)
好,所以我知道了:
data efterdc5;
set efterdc4;
ettarefter=datum_sistahandelse;
format ettarefter yymmdd10.;
run;
data efterdc5;
set efterdc5;
ettarefter2=intnx('year',ettarefter,1,'same');
format ettarefter2 yymmdd10.;
run;
data efterdc5;
set efterdc5;
where datum_sistahandelse<date1<=ettarefter2;
drop ettarefter;
run;
这给了我比datum_sistahandelse保留观测值一年的结果
答案 1 :(得分:0)
由于参考日期值位于datum_sistahandelse
列中,该列包含整个组的静态值,因此您只需一步即可进行子设置
data want;
set have;
where date1 between sistahandelse+1 and intnx('year',sistahandelse,1,'same');
run;