<?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 Help with DO LOOP on second part of variables name in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151883#M262538</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;The below codes repeatedly analyze var_1x var_2d var_3e.... and create new variable exit_1x exit_2d exit_3d.... respectively.&lt;/P&gt;&lt;P&gt;I want to make a DO LOOP such as:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do secondpart from 1x TO 3e;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please help me with this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_1x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_2d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_3e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_4x;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 2 3 4 5&lt;/P&gt;&lt;P&gt;2 2 2 1 4&lt;/P&gt;&lt;P&gt;4 2 3 1 2&lt;/P&gt;&lt;P&gt;5 3 6 7 8&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have; set have;&lt;/P&gt;&lt;P&gt;id=_n_;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=1x;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=2d;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=3e;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Dec 2014 03:21:42 GMT</pubDate>
    <dc:creator>hhchenfx</dc:creator>
    <dc:date>2014-12-16T03:21:42Z</dc:date>
    <item>
      <title>Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151883#M262538</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;The below codes repeatedly analyze var_1x var_2d var_3e.... and create new variable exit_1x exit_2d exit_3d.... respectively.&lt;/P&gt;&lt;P&gt;I want to make a DO LOOP such as:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do secondpart from 1x TO 3e;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please help me with this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_1x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_2d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_3e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_4x;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 2 3 4 5&lt;/P&gt;&lt;P&gt;2 2 2 1 4&lt;/P&gt;&lt;P&gt;4 2 3 1 2&lt;/P&gt;&lt;P&gt;5 3 6 7 8&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have; set have;&lt;/P&gt;&lt;P&gt;id=_n_;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=1x;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=2d;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%let secondpart=3e;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 03:21:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151883#M262538</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2014-12-16T03:21:42Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151884#M262539</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bit at a loss as to why arrays won't work instead of macros.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you post the expected output based on data and/or logic for output.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 04:03:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151884#M262539</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-12-16T04:03:13Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151885#M262540</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;Totally agree with Reeza, post what you want as output and how to get there.&amp;nbsp; Even running the program it makes no sense.&amp;nbsp; Definitely investigate arrays or lag() function.&amp;nbsp; Alternatively consider normalizing your data, i.e. have it vertically rather than across.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 10:04:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151885#M262540</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-12-16T10:04:27Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151886#M262541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for asking,&lt;/P&gt;&lt;P&gt;One reason I like Do loop is that part of the name of the variable (_1x) will be included in the name of outcome variables.&lt;/P&gt;&lt;P&gt;Moreover, the actual code body is complicate so I find that doing DO LOOP gives me more flexibility.&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 14:43:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151886#M262541</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2014-12-16T14:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151887#M262542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do loops and arrays go hand in hand. Look into vname and vvaluex functions if your interested in variable name m&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 15:04:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151887#M262542</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-12-16T15:04:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151888#M262543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;But then you are merely creating a rod for your own back so to speak.&amp;nbsp; Most of the functions have parameters to allow you to work with arrays of variables, but this requires a numeric suffix.&amp;nbsp; So by avoiding using the numeric suffix you are losing a whole load of functionality?&amp;nbsp; Please post example test data and required output (and what the required output is meant to be) and we can suggest alternatives.&amp;nbsp; An example is generating the code which will shrink yours significantly (however based on required output, there may be (and probably is) better ways):&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data _null_;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I="1x","2d","3e";&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call execute('&lt;/STRONG&gt;data have;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop i found v2 id2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have nobs=totalobs;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=i to totalobs until (found=1);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have (keep=value id rename=(value=v2 id=id2)) point=j;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if v2&amp;gt;var_'||strip(I)||' 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_'||strip(I)||'=id2;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 15:09:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151888#M262543</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-12-16T15:09:16Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151889#M262544</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;Reeza and RW9 provided a different and better approach. in case you still want to stick with the DO LOOP:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_1x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_2d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_3e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_4x;&lt;BR /&gt;datalines;&lt;BR /&gt;0 2 3 4 5&lt;BR /&gt;2 2 2 1 4&lt;BR /&gt;4 2 3 1 2&lt;BR /&gt;5 3 6 7 8&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data have; set have;&lt;BR /&gt;id=_n_;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%macro calc (part);&lt;/P&gt;&lt;P&gt;%let i=1;&lt;BR /&gt;%let varcur=%scan(&amp;amp;part,&amp;amp;i);&lt;/P&gt;&lt;P&gt;%do %while(&amp;amp;varcur ne );&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;drop i found v2 id2;&lt;BR /&gt;set have nobs=totalobs;&lt;BR /&gt;i+1;&lt;BR /&gt; &lt;BR /&gt;do j=i to totalobs until (found=1);&lt;BR /&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;BR /&gt;if v2&amp;gt;&amp;amp;varcur then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;varcur=id2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;%let i=%eval(&amp;amp;i+1);&lt;BR /&gt;%let varcur=%scan(&amp;amp;part,&amp;amp;i);&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%mend calc;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%calc(var_1x var_2d var_3e)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 15:11:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151889#M262544</guid>
      <dc:creator>Loko</dc:creator>
      <dc:date>2014-12-16T15:11:33Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151890#M262545</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree with Reeza.&amp;nbsp; Here's a little help using arrays:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array vars {3} var_1x var_2d var_3e;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array exits {3} exit_1x exit_2d exit_3e;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _i_=1 to 3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if v2 &amp;gt; vars{_i_} 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; found=1;&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; exits{_i_} = id2;&lt;/P&gt;&lt;P&gt;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop id2 v2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You get everything in one data set, with no macro language.&amp;nbsp; Is that the eventual result you are looking for?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 15:58:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151890#M262545</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-12-16T15:58:09Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151891#M262546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;Thank you for helping.&lt;/P&gt;&lt;P&gt;I guess I did not make my case clearer at the beginning.&lt;/P&gt;&lt;P&gt;The reason I want to do DO Loop is to accomplish the below kind of Macro&lt;/P&gt;&lt;P&gt;I do not have SAS with me right now to check if LoKo method works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%MACRO doloop;&lt;BR /&gt;&amp;nbsp; %do start=0 %to 2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; %do end=0 %to 4 %by 1; &lt;BR /&gt;&amp;nbsp; &lt;STRONG style="color: #ff0000;"&gt;%do secondpart **** %to ******;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt; &lt;BR /&gt; &lt;BR /&gt;*-------------------------;&lt;BR /&gt;&amp;nbsp; Code body&lt;BR /&gt; *-------------------------;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 17:32:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151891#M262546</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2014-12-16T17:32:42Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151892#M262547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Still not clear. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 19:16:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151892#M262547</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-12-16T19:16:12Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151893#M262548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My idea is to run the analysis for each of the variable &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; var_1x &lt;/TD&gt;&lt;TD&gt;var_2d &lt;/TD&gt;&lt;TD&gt;var_3e &lt;/TD&gt;&lt;TD&gt;var_4x;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;say:&amp;nbsp;&amp;nbsp; start=0 and end=0 and var_1x&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start=0 and end=0 and var_2d &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp; start=0 and end=0 and var_3e &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;.... to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start=2 and end=4 and var_3e;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp; start=2 and end=4 and var_4x;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for asking.&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO doloop;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do start=0 %to 2;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; %do end=0 %to 4 %by 1; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG style="color: #ff0000;"&gt;%do secondpart&amp;nbsp; from 1x, 2d, 3e, 4x;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-------------------------;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Code body&lt;/P&gt;&lt;P&gt; *-------------------------;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 20:26:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151893#M262548</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2014-12-16T20:26:17Z</dc:date>
    </item>
    <item>
      <title>Re: Help with DO LOOP on second part of variables name</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151894#M262549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think it works for me.&lt;/P&gt;&lt;P&gt;HHC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_1x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_2d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_3e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_4x;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 2 3 4 5&lt;/P&gt;&lt;P&gt;2 2 2 1 4&lt;/P&gt;&lt;P&gt;4 2 3 1 2&lt;/P&gt;&lt;P&gt;5 3 6 7 8&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;data have; set have;&lt;/P&gt;&lt;P&gt;id=_n_;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let oldvar= 1x 2d 3e 4x;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test;&lt;/P&gt;&lt;P&gt;%do i=1 %to %sysfunc(countw(&amp;amp;oldvar));&lt;/P&gt;&lt;P&gt;%let secondpart=%scan(&amp;amp;oldvar,&amp;amp;i);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;drop i found v2 id2;&lt;/P&gt;&lt;P&gt;set have nobs=totalobs;&lt;/P&gt;&lt;P&gt;i+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do j=i to totalobs until (found=1);&lt;/P&gt;&lt;P&gt;set have (keep=value id rename=(value=v2 id=id2)) point=j;&lt;/P&gt;&lt;P&gt;if v2&amp;gt;var_&amp;amp;secondpart then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit_&amp;amp;secondpart=id2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Dec 2014 21:02:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-DO-LOOP-on-second-part-of-variables-name/m-p/151894#M262549</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2014-12-16T21:02:23Z</dc:date>
    </item>
  </channel>
</rss>

