The third row of dataset New, the column visit should be 'Missing',why I got 'Retreat'?
Here is SAS code:
data old; input sitesub $ vtype vdate $; cards; 01-303 1.4 12/23/2005 01-304 1.5 09/03/2005 01-308 . 04/30/2005 01-305 1.4 10/09/2005 01-306 1.5 11/17/2005 01-307 1.5 05/29/2005 ; run; data new; set old; length visit $20; visit=ifc(vtype=1.4,'Baseline','Retreat','Missing'); run;
It's not working as expected because the result of the comparison if vtype=1.4 can only be true or false, thus never has a missing value.
You can get it to do what you want by nesting two ifc functions:
data new; set old; length visit $20; visit=ifc(missing(vtype),'Missing',ifc(vtype=1.4,'Baseline','Retreat')); run;
Alternatively, you could express the condition in a form that would set it to missing if the value were missing. e.g.,
data new; set old; length visit $20; visit=ifc(1.4*(vtype eq 1.4),'Baseline','Retreat','Missing'); run;
Art, CEO, AnalystFinder.com
It's not working as expected because the result of the comparison if vtype=1.4 can only be true or false, thus never has a missing value.
You can get it to do what you want by nesting two ifc functions:
data new; set old; length visit $20; visit=ifc(missing(vtype),'Missing',ifc(vtype=1.4,'Baseline','Retreat')); run;
Alternatively, you could express the condition in a form that would set it to missing if the value were missing. e.g.,
data new; set old; length visit $20; visit=ifc(1.4*(vtype eq 1.4),'Baseline','Retreat','Missing'); run;
Art, CEO, AnalystFinder.com
IFC() might be a useful function in the right place, but this example is one where using normal IF/THEN is probably better.
data new;
set old;
length visit $20;
if missing(vtype) then visit='Missing';
else if vtype=1.4 then visit='Baseline';
else visit='Retreat';
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.