BookmarkSubscribeRSS Feed
knveraraju91
Barite | Level 11

Dear,

With my code I am  getting my output.

Are there any other way I can  write the code  in the second data step. Thank you

data one;
input date1 date2 date3 date4;
informat date: yymmdd10.;
format date: yymmdd10.;
datalines;
2015-10-01 2015-10-02 2015-10-20 2015-10-12
;
run;

data two;
set one;
if date1 ne . and date2 ne . and date3 ne . and date4 ne . then adt=min(date1,date2,date3,date4);
if adt =date1 or adt =date2 or adt =date3 then edur='recur';
else if adt=date4 then edur='death';
format adt yymmdd10.; run;
3 REPLIES 3
KachiM
Rhodochrosite | Level 12

Look at the example:

data _null_;
   a1 = 10;
   a2 = 5;
   a3 = .;
   y = min(a1,a2,a3);
   put y =;
   if whichN(y, a1,a2,a3) then xx ='recur';
   put xx =;
run;
Reeza
Super User

COALESCE() can come in handy.

Read through the function list, the best way to know what options you have 

PGStats
Opal | Level 21
data two;
set one;
if cmiss(of date:) = 0 then
    edur = choosec(whichn(min(of date:), of date:),"recur","recur","recur","death");
run;
PG
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1424 views
  • 5 likes
  • 4 in conversation