Running the code below I am expecting to see a 'null' for the check2 variable from the third row. I get a 'wrong'. Can someone explain why?
Thank You,
data ifc;
infile cards dsd;
input one two three;
cards;
1,2,3
,2,3
1,,3
1,3,
;
run;
data test;
set ifc;
check1 = ifc(one,.,'one is null');
check2 = ifc(two = 2,'right','wrong','null');
run;
I have made some modifications on your data and your code, now you can easily figure out what is going on:
data ifc;
infile cards dsd;
input one two three;
cards;
1,2,3
,0,3
1,,3
1,3,
;
run;
data test;
set ifc;
check1 = ifc(one,.,'one is null');
check2 = ifc(two,'right','wrong','null');
run;
Update: a boolean evaluation such as 'two=2' will never be missing, it is either 1 or 0, so this is why you are not getting 'null' as an outcome.
Try :
data test2;
desc = "2 = 1"; c = 2 = 1; output;
desc = "2 = ."; c = 2 = .; output;
desc = ". = ."; c = . = .; output;
run;
pric print data=test2; run;
PG
I have made some modifications on your data and your code, now you can easily figure out what is going on:
data ifc;
infile cards dsd;
input one two three;
cards;
1,2,3
,0,3
1,,3
1,3,
;
run;
data test;
set ifc;
check1 = ifc(one,.,'one is null');
check2 = ifc(two,'right','wrong','null');
run;
Update: a boolean evaluation such as 'two=2' will never be missing, it is either 1 or 0, so this is why you are not getting 'null' as an outcome.
Excellent, thank you!
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.