<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Proc format wildcards in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-format-wildcards/m-p/497038#M131607</link>
    <description>&lt;P&gt;Proc Format does not recognize any "wild card" character. The : you are using is used for variable name lists, not values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will accept ranges of values but don't expect good results with character values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You might consider extracting the different values into a data set and using that data set to create a format.&lt;/P&gt;
&lt;P&gt;Something like this might get you started:&lt;/P&gt;
&lt;PRE&gt;proc sql;
   create table payer as
   select distinct Primary_payer 
   from yourdataset;
run;

data payerfmt;
   set payer;
   fmtname="$PRIMARY_PAYER_DESC";
   type='C';
   start=Primary_payer;
   if index(start,'UNKNOWN')&amp;gt;0 then Label='UNKNOWN';
   else    if index(start,'MEDICAID')&amp;gt;0 then Label='MEDICAID';
   else    if index(start,'MEDICARE')&amp;gt;0 then Label='MEDICARE';
   else if start in ('MANAGED CARE PROVIDER, HMO, PPO','PRIVATE INSURANCE: FEE-FOR SERVICE')
      then label = 'PRIVATE INSURANCE';
   else if start='TRICARE' then label = 'SELF PAY/OTHER';
   else label=start;
run;

proc format cntlin=payerfmt;
run;
&lt;/PRE&gt;</description>
    <pubDate>Wed, 19 Sep 2018 15:59:34 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2018-09-19T15:59:34Z</dc:date>
    <item>
      <title>Proc format wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-format-wildcards/m-p/497026#M131600</link>
      <description>&lt;P&gt;Using SAS 9.4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to use the wildcard while writing a format to avoid spelling out each item. Am I using the wildcard incorrectly? Any thoughts? Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have attached my code as screenshot as well ( I have run at the bottom it is just not captured)&lt;/P&gt;&lt;P&gt;PROC FORMAT;&lt;BR /&gt;VALUE $RACE_DESC 'AMERICAN INDIAN:' = 'AMERICAN INDIAN/ALASKAN NATIVE'&lt;BR /&gt;'JAPANESE','FILIPINO','VIETNAMESE','OTHER ASIAN','ASIAN INDIAN:' = 'ASIAN'&lt;BR /&gt;'WHITE' = 'CAUCASIAN'&lt;BR /&gt;'BLACK' = 'AFRICAN AMERICAN'&lt;BR /&gt;'OTHER' = 'OTHER RACE'&lt;BR /&gt;'UNKNOWN' = 'UNKNOWN RACE';&lt;BR /&gt;VALUE $ETHNICITY_DESC 'MEXICAN','SPANISH:','SOUTH:' = 'HISPANIC/LATINO'&lt;BR /&gt;'NON-SPANISH' = 'NON-HISPANIC/LATINO'&lt;BR /&gt;'UNKNOWN:' = 'UNKNOWN ETHNICITY';&lt;BR /&gt;VALUE $TUMOR_STAGE '0' = 'STAGE 0'&lt;BR /&gt;'IA','IB' = 'STAGE I'&lt;BR /&gt;'IIA','IIB' = 'STAGE II'&lt;BR /&gt;'IIIA','IIIB','IIIC' = 'STAGE III'&lt;BR /&gt;'IV' = 'STAGE IV'&lt;BR /&gt;'NA','UNK' = 'UNKNOWN/NOT APPLICABLE';&lt;BR /&gt;value $PRIMARY_PAYER_DESC 'INSURANCE STATUS UNKNOWN','UNKNOWN 01','UNKNOWN 02' = 'UNKNOWN'&lt;BR /&gt;'NOT APPLICABLE' = 'NOT APPLICABLE'&lt;BR /&gt;'MEDICAID:' = 'MEDICAID'&lt;BR /&gt;'MEDICARE:' = 'MEDICARE'&lt;BR /&gt;'INSURANCE, NOS' = 'INSURANCE, NOS'&lt;BR /&gt;'MANAGED CARE PROVIDER, HMO, PPO','PRIVATE INSURANCE: FEE-FOR SERVICE' = 'PRIVATE INSURANCE'&lt;BR /&gt;'TRICARE' = 'SELF PAY/OTHER';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Sep 2018 15:31:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-format-wildcards/m-p/497026#M131600</guid>
      <dc:creator>GS2</dc:creator>
      <dc:date>2018-09-19T15:31:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc format wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-format-wildcards/m-p/497038#M131607</link>
      <description>&lt;P&gt;Proc Format does not recognize any "wild card" character. The : you are using is used for variable name lists, not values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will accept ranges of values but don't expect good results with character values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You might consider extracting the different values into a data set and using that data set to create a format.&lt;/P&gt;
&lt;P&gt;Something like this might get you started:&lt;/P&gt;
&lt;PRE&gt;proc sql;
   create table payer as
   select distinct Primary_payer 
   from yourdataset;
run;

data payerfmt;
   set payer;
   fmtname="$PRIMARY_PAYER_DESC";
   type='C';
   start=Primary_payer;
   if index(start,'UNKNOWN')&amp;gt;0 then Label='UNKNOWN';
   else    if index(start,'MEDICAID')&amp;gt;0 then Label='MEDICAID';
   else    if index(start,'MEDICARE')&amp;gt;0 then Label='MEDICARE';
   else if start in ('MANAGED CARE PROVIDER, HMO, PPO','PRIVATE INSURANCE: FEE-FOR SERVICE')
      then label = 'PRIVATE INSURANCE';
   else if start='TRICARE' then label = 'SELF PAY/OTHER';
   else label=start;
run;

proc format cntlin=payerfmt;
run;
&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Sep 2018 15:59:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-format-wildcards/m-p/497038#M131607</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-09-19T15:59:34Z</dc:date>
    </item>
  </channel>
</rss>

