DATA Step, Macro, Functions and more

how to create a new variable based on a condition

Reply
Super Contributor
Posts: 312

how to create a new variable based on a condition

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;
Super Contributor
Posts: 320

Re: how to create a new variable based on a condition

Posted in reply to knveraraju91

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;
Super User
Posts: 23,224

Re: how to create a new variable based on a condition

Posted in reply to knveraraju91

COALESCE() can come in handy.

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

Esteemed Advisor
Posts: 5,474

Re: how to create a new variable based on a condition

[ Edited ]
Posted in reply to knveraraju91
data two;
set one;
if cmiss(of date:) = 0 then
    edur = choosec(whichn(min(of date:), of date:),"recur","recur","recur","death");
run;
PG
Ask a Question
Discussion stats
  • 3 replies
  • 140 views
  • 5 likes
  • 4 in conversation