Did
you know that the IFC and IFN functions allow you to have 1-line
IF/THEN/ELSE-like statements?
The
IFC and IFN functions can be handy when you have a single THEN condition and a
single ELSE condition and you would like to have an action taken if the test
condition results in missing values.
The
IFC function returns a character value based on whether or not an expression is
true, false, or missing. The basic form
of the function is:
IFC(logical-expression,
value-returned-when-true,
value-returned-when-false
<,value-returned-when-missing>)
Here
is an example:
data class_gender;
set sashelp.class;
length gender $7;
label gender = "Gender";
gender = ifc(sex="M",
"Male ",
"Female", "Unknown");
run;
In
the example, we test variable SEX for the value “M”. If SEX = “M”, the variable GENDER is set to
“Male”. If not, it is set to
“Female”. If SEX contains a missing
value, it is set to “Unknown”.
The
IFN function returns a numeric value based on whether or not an expression is
true, false, or missing. The basic form
of the function is:
IFN(logical-expression,
value-returned-when-true,
value-returned-when-false
<,value-returned-when-missing>)
Here
is an example:
data electric_surcharge;
set sashelp.electric;
label surcharge = "Surcharge
(B)";
surcharge = ifn(year=2005,
revenue *.001, revenue * .000025,
0);
run;
In the example, we test the variable YEAR for the numeric value
of 2005. If YEAR = 2005, the variable
SURCHARGE is set to REVENUE * .001. If YEAR
does not equal 2005, SURCHARGE is computed to be REVENUE * .000025. If YEAR contains missing values, SURCHARGE is
set to Zero.
You can probably think of dozens of uses for the IFC and IFN
functions. I like to think of these two functions as
“IF/THEN/ELSE in a can”.
Best
of luck in all your SAS endeavors!
---MMMMIIIIKKKKEEEE
(aka Michael A. Raithel)
Author of the new cult
classic for computer programmers: It Only Hurts When I
Hit <ENTER>
Print edition: http://tinyurl.com/z8bzx2e
Kindle edition: http://tinyurl.com/zypgqa7
The hack above is an
excerpt from the book: Did
You Know That? Essential Hacks for Clever SAS Programmers
Print edition: http://tinyurl.com/z8bzx2e
Kindle edition: http://tinyurl.com/zypgqa7
No comments:
Post a Comment