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!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.