<?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: %if/%then not recognizing wildcards in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247248#M6543</link>
    <description>&lt;P&gt;As a strategy, note that you do not need to create a new data set.&amp;nbsp; Depending on the data set size, this might slow down your application.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS contains a YEAR format that can be applied to date variables, that will group observations by year.&amp;nbsp; You can use the original data set, the original variable, and just change the format when getting frequencies.&lt;/P&gt;</description>
    <pubDate>Mon, 01 Feb 2016 16:51:31 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2016-02-01T16:51:31Z</dc:date>
    <item>
      <title>%if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247223#M6530</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SAS 9.3, I would like to cycle variables with a date format through this top half and not have to list out every single date format.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried %like, contains, find(), index(), =:,&amp;nbsp; and nothing works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This code works:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;comparefreqs&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=&lt;STRONG&gt;1&lt;/STRONG&gt; %to &lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;&amp;amp;format&amp;amp;i." = ("MMDDYY10") %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;amp;&amp;amp;name&amp;amp;i.&lt;STRONG&gt;._&lt;/STRONG&gt;curr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set curr.&amp;amp;dsn. (keep=&amp;amp;&amp;amp;name&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=year(&amp;amp;&amp;amp;name&amp;amp;i.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop &amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename var=&amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blah blah blah&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This code does not:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;comparefreqs&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=&lt;STRONG&gt;1&lt;/STRONG&gt; %to &lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;&amp;amp;format&amp;amp;i." like ("MMDDYY%") %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;amp;&amp;amp;name&amp;amp;i.&lt;STRONG&gt;._&lt;/STRONG&gt;curr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set curr.&amp;amp;dsn. (keep=&amp;amp;&amp;amp;name&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=year(&amp;amp;&amp;amp;name&amp;amp;i.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop &amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename var=&amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blah blah blah&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;1701&amp;nbsp; %comparefreqs;&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&amp;nbsp; &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&amp;nbsp; Macro variable I resolves to 1&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&amp;nbsp; Macro variable FORMAT1 resolves to MMDDYY10&lt;/P&gt;&lt;P&gt;ERROR: Required operator not found in expression: "&amp;amp;&amp;amp;format&amp;amp;i." like ("MMDDYY%")&lt;/P&gt;&lt;P&gt;ERROR: The macro COMPAREFREQS will stop executing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The only difference between the two is the = was changed to LIKE.&amp;nbsp; And %like doesn't work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The =: was my favorite.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;comparefreqs&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=&lt;STRONG&gt;1&lt;/STRONG&gt; %to &lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;&amp;amp;format&amp;amp;i." =: MMDDYY10 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;amp;&amp;amp;name&amp;amp;i.&lt;STRONG&gt;._&lt;/STRONG&gt;curr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set curr.&amp;amp;dsn. (keep=&amp;amp;&amp;amp;name&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=year(&amp;amp;&amp;amp;name&amp;amp;i.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop &amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename var=&amp;amp;&amp;amp;name&amp;amp;i.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blah blah blah&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;From the log (Format resolves to MMDDYY10, but since it's not MMDDYY10, it's false.&amp;nbsp; ??&amp;nbsp; Huh?):&lt;BR /&gt;SYMBOLGEN:&amp;nbsp; Macro variable FORMAT1 resolves to MMDDYY10&lt;BR /&gt;MLOGIC(COMPAREFREQS):&amp;nbsp; %IF condition "&amp;amp;&amp;amp;format&amp;amp;i." =: MMDDYY10 is FALSE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tried it with quotes, without quotes, tried =: MMDDYY since i want a wildcard.&amp;nbsp; Nothing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Megan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 15:25:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247223#M6530</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T15:25:36Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247227#M6533</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is not equivalent to the like command in macro language, macro is not a programming language as such, it is a text generator. &amp;nbsp;You could use functions. &amp;nbsp;However, I would advise you reconsider what you are trying to do. &amp;nbsp;If you provide a bit of test data and required output, I am 99.9% certain you can do wht you want in Base SAS, far simpler than all those &amp;amp;&amp;amp;%%&amp;amp;&amp;amp;'s. &amp;nbsp;Even something using call execute would be simpler coding:&lt;/P&gt;
&lt;PRE&gt;data _null_;
  set sashelp.vcolumns;
  if &amp;lt;your_conditon&amp;gt; = "MMDDYY10" then call execute('...');
run;
&lt;/PRE&gt;</description>
      <pubDate>Mon, 01 Feb 2016 15:36:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247227#M6533</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-02-01T15:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247231#M6534</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/71196"&gt;@MeganE﻿&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As a quick fix you could write&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%if %substr(&amp;amp;&amp;amp;format&amp;amp;i,1,6)=MMDDYY %then %do;&lt;/CODE&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 15:44:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247231#M6534</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2016-02-01T15:44:06Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247234#M6535</link>
      <description>&lt;P&gt;Well, i'm running frequencies on every un-user-formatted variable in the dataset, except for date variables where we only want to run frequencies on the year.&amp;nbsp; So i'm pulling all of the un-user-formatted variables and their formats into macro variables because if they're date variables i want to pull the date off and if they're not i just want to run straight frequencies and then compare to select off where there's a greater than 2% difference.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Unless i want to list out every variable in the dataset by hand, which i don't want to do, i'd rather do it within a macro.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 15:57:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247234#M6535</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T15:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247236#M6536</link>
      <description>&lt;P&gt;Thanks.&amp;nbsp; I just tried it butnow i'm getting different errors that may be talking about later in the code, but i don't know.&amp;nbsp; It works with the equal, so the change to that one line has to be the cause of the errors.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro comparefreqs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%do i=1 %to 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%put "&amp;amp;&amp;amp;format&amp;amp;i.";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%if %substr(&amp;amp;&amp;amp;format&amp;amp;i.,1,6) = "MMDDYY"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*or "&amp;amp;&amp;amp;format&amp;amp;i." = "DATE9"*/ %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;data &amp;amp;&amp;amp;name&amp;amp;i.._curr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set curr.&amp;amp;dsn. (keep=&amp;amp;&amp;amp;name&amp;amp;i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;var=year(&amp;amp;&amp;amp;name&amp;amp;i.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;drop &amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rename var=&amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;307&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from junk.qc12_compare_&amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;ERROR: Macro keyword IF appears as text.&lt;BR /&gt;308&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;309&lt;BR /&gt;310&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*If there are no records in the table, delete it so&lt;BR /&gt;311&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it isn't cluttering up the work directory.*/&lt;BR /&gt;312&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;num=0 %then %do;&lt;BR /&gt;ERROR: Macro keyword END appears as text.&lt;BR /&gt;313&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc datasets library=junk nolist;&lt;BR /&gt;314&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete qc12_compare_&amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;ERROR: Macro keyword END appears as text.&lt;BR /&gt;315&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;316&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;ERROR: Macro keyword MEND appears as text.&lt;BR /&gt;317&lt;BR /&gt;318&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;319&amp;nbsp; %mend comparefreqs;&lt;BR /&gt;320&amp;nbsp; %comparefreqs;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&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;</description>
      <pubDate>Mon, 01 Feb 2016 16:02:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247236#M6536</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T16:02:48Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247237#M6537</link>
      <description>&lt;P&gt;Found it.&amp;nbsp; I swear i tried %index and it did NOT work, but apparently i was missing %upcase, because this does work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro comparefreqs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%do i=8 %to 8;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%if %index(%upcase(&amp;amp;&amp;amp;format&amp;amp;i),MMDDYY) &amp;gt; 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;data &amp;amp;&amp;amp;name&amp;amp;i.._curr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set curr.&amp;amp;dsn. (keep=&amp;amp;&amp;amp;name&amp;amp;i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;var=year(&amp;amp;&amp;amp;name&amp;amp;i.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;drop &amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rename var=&amp;amp;&amp;amp;name&amp;amp;i.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks everyone!&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:09:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247237#M6537</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T16:09:04Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247240#M6538</link>
      <description>&lt;P&gt;Well, to repeat. &amp;nbsp;There is no need to resort to macro processing for this. &amp;nbsp;You have the metadata in SASHELP.VCOLUMN (or dictionary.columns if you lik SQL). &amp;nbsp;FYou can use that dataset very simply to find the items you want and then call execute the required code:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; set sashelp.vcolumn (where=(index(format,"MMDDYY"));&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /* The above gives you a dataset containing all variables which have a date format like the one given */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /* As a datastep is a loop, I can now put code here which will be called for each of those variables */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /* Note that with this syntax you could do all kinds of funky things in here, as you would with any datastep&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for example not just dates, but times, you could do some manipulations etc. */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; call execute('proc means data=xyz; var='||strip(name)||'; output out=want_'||strip(name)||'; run;');&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above will generate one proc means for each variable with a format of MMDDYY. &amp;nbsp;Simple Base SAS coding.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:19:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247240#M6538</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-02-01T16:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247241#M6539</link>
      <description>&lt;P&gt;Thanks, but i need to run frequencies on ALL variables, not just date ones.&amp;nbsp; I just need to cycle the date ones through a different bit of code than everything else, before it can be brought back to what everything else is being run through b/c i don't want freqs on the actual date, just on the year.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do get a list of all variables and their associated formats from the dictionary.columns table.&amp;nbsp; That's what i use to build the macro variables in the first place.&amp;nbsp; I just didn't include that part of the code because there's nothing wrong with it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:27:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247241#M6539</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T16:27:27Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247243#M6540</link>
      <description>&lt;P&gt;Glad to read you found a solution.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Two remarks:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;You didn't copy my code correctly: For the macro processor, &lt;FONT face="courier new,courier"&gt;MMDDYY&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;"MMDDYY"&lt;/FONT&gt; are not equal.&lt;/LI&gt;
&lt;LI&gt;In your original post you wrote that the condition&amp;nbsp;&lt;SPAN&gt;"&amp;amp;&amp;amp;format&amp;amp;i." = ("MMDDYY10") worked. So, I assumed that your macro&amp;nbsp;variables FORMAT1 etc. contain uppercase strings. Hence, applying %UPCASE should be redundant. However, it's good practice to use it anyway ("defensive programming").&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:28:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247243#M6540</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2016-02-01T16:28:44Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247246#M6541</link>
      <description>&lt;P&gt;So use an if statement:&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; set sashelp.vcolumn;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; length code $200;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if index(name,"MMDDYY") then code="something to only do for date variables";&lt;/P&gt;
&lt;P&gt;&amp;nbsp; else code="something to do for all other variables";&lt;/P&gt;
&lt;P&gt;&amp;nbsp; call execute('proc means data=xyz; '||code||'; run;');&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do any processing in a datastep.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:37:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247246#M6541</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-02-01T16:37:23Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247248#M6543</link>
      <description>&lt;P&gt;As a strategy, note that you do not need to create a new data set.&amp;nbsp; Depending on the data set size, this might slow down your application.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS contains a YEAR format that can be applied to date variables, that will group observations by year.&amp;nbsp; You can use the original data set, the original variable, and just change the format when getting frequencies.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:51:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247248#M6543</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-02-01T16:51:31Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247250#M6544</link>
      <description>&lt;P&gt;I'm good thanks.&amp;nbsp; I got %index to work.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:54:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247250#M6544</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T16:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: %if/%then not recognizing wildcards</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247251#M6545</link>
      <description>&lt;P&gt;Thanks again.&amp;nbsp; I did run it both with quotes and without.&amp;nbsp; When it didn't run without quotes, i ran it with, so that was just the code that was copied in.&amp;nbsp; Thanks again though.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And that %upcase part?&amp;nbsp; I don't even know.&amp;nbsp; I opened my macro table and all system assigned formats are already in uppercase, so why %upcase made that %index work when it wouldn't work without it, and everything was already upper case, i will never know.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 16:57:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/if-then-not-recognizing-wildcards/m-p/247251#M6545</guid>
      <dc:creator>MeganE</dc:creator>
      <dc:date>2016-02-01T16:57:24Z</dc:date>
    </item>
  </channel>
</rss>

