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;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.