<?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 Macro: looping through columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28902#M5409</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can get a list of the variable names in a dataset from PROC CONTENTS or by querying SAS's internal metadata tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc contents data=mydata out=contents noprint; run;&lt;/P&gt;&lt;P&gt;proc sql ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; select name into :varlist separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from contents&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;%let n=&amp;amp;sqlobs;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%do i=1 %to &amp;amp;n ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let currentvar = %scan(&amp;amp;varlist,&amp;amp;i);&lt;/P&gt;&lt;P&gt; ....repetitive code....&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Mar 2012 18:04:00 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2012-03-12T18:04:00Z</dc:date>
    <item>
      <title>Macro: looping through columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28899#M5406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm a bit of a Macro noob, and was wondering whether someone could help me tackle this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I have is an array where individual data is organized by columns, e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etc&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 250&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 220&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 280&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 280&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 320&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 280&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 310&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 260&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The names of the columns do not ascend in any particular order. I would like to cycle through each of the columns and perform some macro functions on each, and I'm not quite sure how to go about it. It would make sense to me to use a do loop, but I'm not sure how to retrieve the column names. I have also made another table which is just the column names, so I could iterate through that, but I'm not sure how to retrieve single table elements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help! Greatly appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Lucy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 17:32:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28899#M5406</guid>
      <dc:creator>lucysas</dc:creator>
      <dc:date>2012-03-12T17:32:47Z</dc:date>
    </item>
    <item>
      <title>Macro: looping through columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28900#M5407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I doubt that you want SAS macro logic to do anything with the values in columns of your data.&lt;/P&gt;&lt;P&gt;Usually you use macro code to generate SAS code that can perform calculations on values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you explain what you want to do?&amp;nbsp; It might even be possible to do it without any macro code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 17:43:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28900#M5407</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-12T17:43:19Z</dc:date>
    </item>
    <item>
      <title>Macro: looping through columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28901#M5408</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I subsequently do perform a set of functions on the columnar data: cumulative sum, loess procedure on the csum, regression etc. I have written these functions for data from one column, which I specify, and I just want to apply the same functions in the same order to every column in the dataset.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 17:58:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28901#M5408</guid>
      <dc:creator>lucysas</dc:creator>
      <dc:date>2012-03-12T17:58:52Z</dc:date>
    </item>
    <item>
      <title>Macro: looping through columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28902#M5409</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can get a list of the variable names in a dataset from PROC CONTENTS or by querying SAS's internal metadata tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc contents data=mydata out=contents noprint; run;&lt;/P&gt;&lt;P&gt;proc sql ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; select name into :varlist separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from contents&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;%let n=&amp;amp;sqlobs;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%do i=1 %to &amp;amp;n ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let currentvar = %scan(&amp;amp;varlist,&amp;amp;i);&lt;/P&gt;&lt;P&gt; ....repetitive code....&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 18:04:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28902#M5409</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-12T18:04:00Z</dc:date>
    </item>
    <item>
      <title>Macro: looping through columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28903#M5410</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can also look into transposing your data and then using BY variable processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=mydate out=vertical;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc means data=vertical;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by _name_ ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var col1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 18:06:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-looping-through-columns/m-p/28903#M5410</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-12T18:06:33Z</dc:date>
    </item>
  </channel>
</rss>

