将第一个日期和最后一个日期分配给新变量

Assign first date and last dates to a new variable

我有一个包含 2 个日期字段(date1 和 date2)的数据集,我必须创建两个新的日期字段,其中 date3 是 date1 中的最早日期,date4 是 date2 +31 天。而且它必须在 testid 上分组完成。 我拥有的数据:

data have;
input acct_num test_id date1 date2 ;
DATALINES; 
55203610 1 2-feb-20    15-Apr-20
55203610 1 15-feb-20   15-Apr-20     
55203610 1 20-feb-20   15-Apr-20
55203610 2 1-Jan-20    20-May-20     
55203610 2 15-Mar-18   20-May-20
55203610 3 1-feb-17    1-Jul-20
;
run;

data want;
input acct_num test_id date1 date2 date3 date4;
DATALINES; 
55203610 1 2-feb-20    15-Apr-20   2-Feb-20   16-May-20
55203610 1 15-feb-20   15-Apr-20   2-Feb-20   16-May-20  
55203610 1 20-feb-20   15-Apr-20   2-Feb-20   16-May-20
55203610 2 1-Jan-20    20-May-20   15-Mar-18  20-Jun-20
55203610 2 15-Mar-18   20-May-20   15-Mar-18  20-Jun-20
55203610 3 1-feb-17    1-Jul-20    1-feb-17   1-Aug-20
;
run;

我们将不胜感激。

使用 DoW Loop

data want;
    do until (last.test_id);
        set have;
        by test_id;
        minval=min(minval, date1);
    end;

    do until (last.test_id);
        set have;
        by test_id;
        date3=minval;
        date4=date2 + 31;
        output;
    end;

    format date: date9.;
    drop minval;
run;