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.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.