dataset:
id trt start_end
101 TA 2012/02/20
101 TA 2012/03/12
102 TB 2014/03/13
103 TC 2014/03/14
Result dataset :
id sex start_date end_date
101 M 2012/02/20 2012/03/12
102 F 2014/03/13 2014/03/13
103 M 2014/03/14 2014/03/14
Post test data in the form of a datastep. I can't tell from that wether the dates are numeric dates or text for example.
This is just a guess (that they are number) not tested (as no test data in a datastep):
data want (drop=sd); set have (rename=(start_date=sd)); by id; if first.id then start_date=sd; if last.id then do; end_date=sd; output; end; format start_date end_date yymmdd10.; run;
Note your results table does not match your test data - no sex, and trt.
Post test data in the form of a datastep. I can't tell from that wether the dates are numeric dates or text for example.
This is just a guess (that they are number) not tested (as no test data in a datastep):
data want (drop=sd); set have (rename=(start_date=sd)); by id; if first.id then start_date=sd; if last.id then do; end_date=sd; output; end; format start_date end_date yymmdd10.; run;
Note your results table does not match your test data - no sex, and trt.
data date;
input id:$3. trt:$2. start_end:yymmdd.;
format start_end yymmdds10.;
cards;
101 TA 2012/02/20
101 TA 2012/03/12
102 TB 2014/03/13
103 TC 2014/03/14
;;;;
run;
proc print;
run;
proc summary nway;
class id trt;
var start_end;
output out=date2(drop=_:) min=start_date max=end_date;
run;
proc print;
run;
Well done. Thanks for your reply.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.