<?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 How to check if a list of columns exists in a dataset and do formatting only on those columns in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149168#M39393</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp; I could think of following, but how to do it better?&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt; a=1;&lt;/P&gt;&lt;P&gt;b='abc def';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro calc_var;&lt;/P&gt;&lt;P&gt;%let var1 = a;&lt;/P&gt;&lt;P&gt;%let var2 = b;&lt;/P&gt;&lt;P&gt;%let dsid = %sysfunc(open(test));&lt;/P&gt;&lt;P&gt;%let check1 = %sysfunc(varnum(&amp;amp;dsid,&amp;amp;var1));&lt;/P&gt;&lt;P&gt;%let check2 = %sysfunc(varnum(&amp;amp;dsid,&amp;amp;var2));&lt;/P&gt;&lt;P&gt;%let rc=%sysfunc(close(&amp;amp;dsid));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data test2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;check1&amp;gt;=1 %then&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; %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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;var1 = &amp;amp;var1*2;&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; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;check2&amp;gt;=1 %then&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; %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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;var2 = compress(&amp;amp;var2,'');&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; %end; run;&lt;/P&gt;&lt;P&gt; %mend;&lt;/P&gt;&lt;P&gt;%calc_var&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;&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;&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; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 17 Sep 2014 15:19:41 GMT</pubDate>
    <dc:creator>venka</dc:creator>
    <dc:date>2014-09-17T15:19:41Z</dc:date>
    <item>
      <title>How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149168#M39393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp; I could think of following, but how to do it better?&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt; a=1;&lt;/P&gt;&lt;P&gt;b='abc def';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro calc_var;&lt;/P&gt;&lt;P&gt;%let var1 = a;&lt;/P&gt;&lt;P&gt;%let var2 = b;&lt;/P&gt;&lt;P&gt;%let dsid = %sysfunc(open(test));&lt;/P&gt;&lt;P&gt;%let check1 = %sysfunc(varnum(&amp;amp;dsid,&amp;amp;var1));&lt;/P&gt;&lt;P&gt;%let check2 = %sysfunc(varnum(&amp;amp;dsid,&amp;amp;var2));&lt;/P&gt;&lt;P&gt;%let rc=%sysfunc(close(&amp;amp;dsid));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data test2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;check1&amp;gt;=1 %then&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; %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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;var1 = &amp;amp;var1*2;&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; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;check2&amp;gt;=1 %then&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; %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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;var2 = compress(&amp;amp;var2,'');&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; %end; run;&lt;/P&gt;&lt;P&gt; %mend;&lt;/P&gt;&lt;P&gt;%calc_var&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;&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;&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; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 15:19:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149168#M39393</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-17T15:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149169#M39394</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Examine the dataset SASHELP.VCOLUMNS.&amp;nbsp; This details which datasets are present in which library and show all variables, observations etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 15:22:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149169#M39394</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-17T15:22:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149170#M39395</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, you are right,&lt;/P&gt;&lt;P&gt;but I also would like to format those columns in the table, like I specified in the macro,&lt;/P&gt;&lt;P&gt;and the macro works, but I would like to optimise the macro.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 15:48:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149170#M39395</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-17T15:48:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149171#M39396</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You don't want to use "format" when talking about SAS variable manipulation such as addition, multiplication or string functions as FORMAT has a very specific meaning related to display of values in SAS. It took me awhile to figure out your code because I was looking for a Format statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 19:02:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149171#M39396</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-09-17T19:02:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149172#M39397</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I am not seeing what it is you are trying to achieve.&amp;nbsp; It doesn't really make sense.&amp;nbsp; You could get the same result as above by:&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set sashelp.vcolumn (where=(libname="WORK" and memname="TEST" and name="A" in=a))&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; sashelp.vcolumn (where=(libname="WORK" and memname="TEST" and name="B" in=b));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if a then call execute('data work.test; set work.test; a=a * 2; run;');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if b then call execute('data work.test; set work.test; b=compress(b,'');run;');&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The real point is why do you want to do anything like the above?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 19:51:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149172#M39397</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-17T19:51:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149173#M39398</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@RW9&lt;/P&gt;&lt;P&gt;What I need is scan through columns of a datasets, and see if variables a or b exists, if a exists then mulitiply by 2 and if b exists compress it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 20:53:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149173#M39398</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-17T20:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149174#M39399</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@ballardw sorry if I have confused you, but what I am basically looking for is optimising the above macro, where&lt;/P&gt;&lt;P&gt; I run through variables of&amp;nbsp; datasets, and see if variables a or b exist, if a exists then mulitiply by 2 and if b exists compress it.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 20:58:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149174#M39399</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-17T20:58:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149175#M39400</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, I can see what the code is doing, the question is why would you need to scan through the columns to see if they exist?&amp;nbsp; Surely at the point of getting to that code you would know they exist, even if in the previous statement you put a length a b statement after the data xxx; so that the variable appears even if it has no data. &lt;/P&gt;&lt;P&gt;So please provide a bit of background information as to why the necessity to scan through columns has come about, is it a transpose for example and you don't know how many columns there are? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 07:53:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149175#M39400</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-18T07:53:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149176#M39401</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@RW9&lt;/P&gt;&lt;P&gt;its because, I need to run through let's day 10 datasets, of which only 2 of the datasets will have the variables a and b.&lt;/P&gt;&lt;P&gt;So, every time I run through a dataset, I need to see if variables a or b exist, if a exists then mulitiply by 2 and if b exists compress it. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 08:42:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149176#M39401</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-18T08:42:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149177#M39402</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, still not understanding the why on this, however the following program demonstrates another way of doing it:&lt;/P&gt;&lt;P&gt;/* Some test datasets */&lt;/P&gt;&lt;P&gt;data ex1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=123; b="AAA"; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data ex2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=124; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data ex3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; b="XYZ"; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;/* This generates the necessary code */&lt;/P&gt;&lt;P&gt;data to_do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.vcolumn (where=(libname="WORK" and substr(memname,1,2)="EX" and upcase(name)="A") in=a)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sashelp.vcolumn (where=(libname="WORK" and substr(memname,1,2)="EX" and upcase(name)="B") in=b);&lt;/P&gt;&lt;P&gt;&amp;nbsp; call execute('data work.'||strip(memname)||'; set work.'||strip(memname)||';');&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if a then call execute('a=a*2;');&lt;/P&gt;&lt;P&gt;&amp;nbsp; if b then call execute('b=compress(b,'||"''"||');');&lt;/P&gt;&lt;P&gt;&amp;nbsp; call execute('run;');&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 09:10:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149177#M39402</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-18T09:10:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149178#M39403</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@RW9, I appreciate your help.&lt;/P&gt;&lt;P&gt; the reason is, to start with I wouldn't know if the dataset will have variable a or b,&lt;/P&gt;&lt;P&gt; f.ex I should be able to handle following two scenarions as well, apart from ex1,ex2,ex3 in your test data.&lt;/P&gt;&lt;P&gt;(at the end I will export all datasets to csv,&lt;/P&gt;&lt;P&gt; so end user will have ex1,ex2,ex3, ex4,another_ex, with corrected values in a,b for ex1,ex2,ex3,another_ex&lt;/P&gt;&lt;P&gt; note: ex4 doesnot have variable a or b.&lt;/P&gt;&lt;P&gt;data ex4;&amp;nbsp; &lt;/P&gt;&lt;P&gt;c=1000; output;&lt;/P&gt;&lt;P&gt; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data another_ex;&amp;nbsp; &lt;/P&gt;&lt;P&gt;a=1000;&amp;nbsp;&amp;nbsp; z='xyz';&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 09:59:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149178#M39403</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-18T09:59:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149179#M39404</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following macro may serve your needs:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*prepare some data*/&lt;BR /&gt;data have1;&lt;BR /&gt;set sashelp.class;&lt;BR /&gt;a+1;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data have2;&lt;BR /&gt;set sashelp.class;&lt;BR /&gt;b='rete';&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data have3;&lt;BR /&gt;set sashelp.class;&lt;BR /&gt;a+1;&lt;BR /&gt;b='rete';&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%macro test (dbase, vars=a b, library=WORK);&lt;/P&gt;&lt;P&gt;%let i=1;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%Do %until(%scan(&amp;amp;vars,%eval(&amp;amp;i))=) ;&lt;BR /&gt;%let J=1;&lt;BR /&gt;%Do %until(%scan(&amp;amp;dbase,%eval(&amp;amp;j))=) ;&lt;BR /&gt;%let varname=;%* clear the variable;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;select name into :varname from sashelp.vcolumn&lt;BR /&gt;where libname="&amp;amp;library" and name="&lt;BR /&gt;%scan(&amp;amp;vars,%eval(&amp;amp;i))"&lt;BR /&gt;and memname="%scan(&amp;amp;dbase,%eval(&amp;amp;j))";&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%if &amp;amp;varname=a %then %do;&lt;BR /&gt; data %scan(&amp;amp;dbase,%eval(&amp;amp;j));&lt;BR /&gt; set %scan(&amp;amp;dbase,%eval(&amp;amp;j));&lt;BR /&gt; a=a*2;&lt;BR /&gt; run;&lt;BR /&gt; %end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;varname=b %then %do;&lt;BR /&gt; data %scan(&amp;amp;dbase,%eval(&amp;amp;j));&lt;BR /&gt; set %scan(&amp;amp;dbase,%eval(&amp;amp;j));&lt;BR /&gt; b=compress(b);&lt;BR /&gt; run;&lt;BR /&gt; %end;&lt;BR /&gt;%let j=%eval(&amp;amp;j + 1);&lt;/P&gt;&lt;P&gt;%end;&lt;BR /&gt;%let i=%eval(&amp;amp;i + 1);&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;/*call the dbases with capital letters*/&lt;BR /&gt;%test (HAVE1 HAVE2 HAVE3)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 10:00:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149179#M39404</guid>
      <dc:creator>Loko</dc:creator>
      <dc:date>2014-09-18T10:00:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149180#M39405</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you try my code with those additional two datasets?&amp;nbsp; The first one EX4, should be fine - no code generated as it would have no records in either A or B reference, hence nothing to do on that.&amp;nbsp; As for the second one - another_ex, well, its up to you how to name datasets, however you do need to have some logical method to identify which datasets you want to work with.&amp;nbsp; You could for instance modify this:&lt;/P&gt;&lt;P&gt;set sashelp.vcolumn (where=(libname="WORK" and substr(memname,1,2)="EX" and upcase(name)="A")&lt;/P&gt;&lt;P&gt;To:&lt;/P&gt;&lt;P&gt;set sashelp.vcolumn (where=(libname="WORK" and index(memname,"EX") and upcase(name)="A")&lt;/P&gt;&lt;P&gt;Then it will take any dataset in WORK which has the text EX in it.&amp;nbsp; Or maybe all your datasets are in a library somewhere, then change to:&lt;/P&gt;&lt;P&gt;set sashelp.vcolumn (where=(libname="MY_LIBRARY" and upcase(name)="A")&lt;/P&gt;&lt;P&gt;This would then do for all datasets irrespective of name in the library MY_LIBRARY.&lt;/P&gt;&lt;P&gt;You just need to modify the code to your specific scenario, as I can only run on the info in the post.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 10:17:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149180#M39405</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-18T10:17:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to check if a list of columns exists in a dataset and do formatting only on those columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149181#M39406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@Loko works perfect, thanks a lot!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 10:41:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-check-if-a-list-of-columns-exists-in-a-dataset-and-do/m-p/149181#M39406</guid>
      <dc:creator>venka</dc:creator>
      <dc:date>2014-09-18T10:41:12Z</dc:date>
    </item>
  </channel>
</rss>

