Hi!
I have a value of string variable :
AESOUT
3::4 (this is the value of variable AESOUT)
I need other variables to populate with 'Y' if contains a 3 or a 4
data want;
set have;
if findw(aesout,'3')>0 then AESHOSP='Y';
else AESHOSP='';
if findw(aesout,'4')>0 then AESDISAB='Y';
else AESDISAB='';
...However I am getting null values in the new variables (AESHOSP and AESDISAB) where I am expecting a 'Y'.
Help is appreciated!
try index
data h;
s="3::4";
if index(s,'3')>0 then new_var='yes';
if index(s,'4')>0 then new_var1='yes';
run;
try index
data h;
s="3::4";
if index(s,'3')>0 then new_var='yes';
if index(s,'4')>0 then new_var1='yes';
run;
There are some very good reasons to code Yes/no as numeric 1/0 values.
One is that when asking to compare if value='Y' you might have set some values to lower case y or even spelled it out 'yes' or 'Yes' depending. And then you get into a look at data to check the values.
Second you can always have a custom format to display Yes/No, Y/N, T/F, True/False, Member/Not member or any pair of values without having to change the variable coding.
Third in summary and report procedures a SUM of the variable will give you count of Yes values and Mean is a percent of Yes values. This may not sound like much but generate a table with Number of Yes and Percent Yes that match your expectations with 'Yes' valued variables.
Fourth some modeling procedures may require a numeric variable.
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.