I have one variable that's values are either 'state' of 'country'. State meaning its a state in the united states. Country meaning it is outside of the united states.
My second variables values are state or country codes. This is the variable I want to format with two different formats based on what my first variable is.
Basically, if my first variable has a value of 'state' then I want to apply my state format to the second variable. And if my first variable has a value of 'country' then I want to apply my country format to the second variable.
As an example, if my first variable has a value of 'state' and my second variable has a value of 'TX' then the state format would make that value in my second variable read 'TEXAS'. But if first variable has a value of 'country' and my second variable has a value of 'TX' then the country format would make that value in my second variable read 'TURKMENISTAN'.
I know this next line of code is incorrect but I think it tells you what I'm trying to do
if var1='state' then var2 $state. else var2 $country.;
I'm using Enterprise Guide 7.1
Thanks,
Kelli
I think you’ll need to create a new variable in this case with the formatted value.
if var1=‘state’ then desc = putc(var2, ‘$state_fmt’);
else desc = putc(var2, ‘$country_fmt’);
You can't do that. No more than you have some observations where the variable is numeric and others where the same variable is character. The format attached to a variable is an attribute of the variable, not of a particular observation. You will need to create a new variable to hold the decoded value.
So if you have data like:
data have ;
length code $10 code_type $10 ;
input code code_type ;
cards;
TX state
USA country
;
If you have formats named $STATE and $COUNTRY you could even just use the value of CODE_TYPE to generate the format to use.
data want ;
set have ;
length description $100 ;
description=putc(code,cats('$',code_type,'.'));
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.