<?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: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result] in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128880#M26304</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure if this is what you want, but&amp;nbsp; Macro variables is not an ideal way of solving this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data visit;&lt;/P&gt;&lt;P&gt;input folder $50.;&lt;/P&gt;&lt;P&gt;call symputx(cats('visit',_n_),folder);&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;D8&lt;/P&gt;&lt;P&gt;D15&lt;/P&gt;&lt;P&gt;D29&lt;/P&gt;&lt;P&gt;D43&lt;/P&gt;&lt;P&gt;D57&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select count(folder) into :numrows trimmed from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select quote(cats(folder)) into :visit separated by ', ' from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data master;&lt;/P&gt;&lt;P&gt;input id :$50. folder :$50.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 D8&lt;/P&gt;&lt;P&gt;1 D15&lt;/P&gt;&lt;P&gt;1 D29&lt;/P&gt;&lt;P&gt;1 D43&lt;/P&gt;&lt;P&gt;2 D15&lt;/P&gt;&lt;P&gt;2 D29&lt;/P&gt;&lt;P&gt;2 D43&lt;/P&gt;&lt;P&gt;2 D5&lt;/P&gt;&lt;P&gt;3 D8&lt;/P&gt;&lt;P&gt;3 D15&lt;/P&gt;&lt;P&gt;3 D29&lt;/P&gt;&lt;P&gt;3 D43&lt;/P&gt;&lt;P&gt;3 D5&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&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;data want; &lt;/P&gt;&lt;P&gt;array temp(&amp;amp;numrows) $8. _temporary_ (&amp;amp;visit); &lt;/P&gt;&lt;P&gt;array art (100) $8. _temporary_; /*100 is an artificial number to cover the maximum possible dimension of the array&lt;/P&gt;&lt;P&gt;&amp;nbsp; , you can get it programatically by adding another pass or using Hash*/&lt;/P&gt;&lt;P&gt; do _n_=1 by 1 until (last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set master;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp; art(_n_)=folder;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; do i=1 to dim(temp);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if temp(i) not in art then do; folder=temp(i); output;end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; call missing (of art(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp; do until (last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set master;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&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;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Sep 2013 13:34:38 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2013-09-04T13:34:38Z</dc:date>
    <item>
      <title>Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128876#M26300</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have created series of macro variable for all expected visits using proc sql.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data visit;&lt;/P&gt;&lt;P&gt;input folder $50.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;D8&lt;/P&gt;&lt;P&gt;D15&lt;/P&gt;&lt;P&gt;D29&lt;/P&gt;&lt;P&gt;D43&lt;/P&gt;&lt;P&gt;D57&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select count(folder) into :numrows from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let numrows=&amp;amp;numrows;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select folder into :visit1 - :visit&amp;amp;numrows from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put _user_;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data master;&lt;/P&gt;&lt;P&gt;input id $50. folder $50.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 D8&lt;/P&gt;&lt;P&gt;1 D15&lt;/P&gt;&lt;P&gt;1 D29&lt;/P&gt;&lt;P&gt;1 D43&lt;/P&gt;&lt;P&gt;2 D15&lt;/P&gt;&lt;P&gt;2 D29&lt;/P&gt;&lt;P&gt;2 D43&lt;/P&gt;&lt;P&gt;2 D5&lt;/P&gt;&lt;P&gt;3 D8&lt;/P&gt;&lt;P&gt;3 D15&lt;/P&gt;&lt;P&gt;3 D29&lt;/P&gt;&lt;P&gt;3 D43&lt;/P&gt;&lt;P&gt;3 D5&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Using macro variables&lt;/STRONG&gt; created previously, add visit columns to lab data in case not present. [Do &lt;STRONG&gt;not&lt;/STRONG&gt; use data merge to achieve this result], use macro concept.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 12:18:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128876#M26300</guid>
      <dc:creator>P_Sharma</dc:creator>
      <dc:date>2013-09-04T12:18:44Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128877#M26301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't see what good those macro variables will do.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why don't you just use PROC SUMMARY and let data visit be CLASSDATA=VISIT.&lt;/P&gt;&lt;P&gt;proc summary data=master classdata=visit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class folder;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output out=allvisit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;you can use IDGROUP to pass other variables to OUT=&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 13:02:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128877#M26301</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2013-09-04T13:02:41Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128878#M26302</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for your response.&lt;/P&gt;&lt;P&gt;Correct this is also one of the way and nice and short.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am playing around with sas macro language and want to see if that is a possibility to achieve the result.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 13:18:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128878#M26302</guid>
      <dc:creator>P_Sharma</dc:creator>
      <dc:date>2013-09-04T13:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128879#M26303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The set of macro variables you created is not the most useful set for this purpose.&amp;nbsp; You created the equivalent of:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let visit1=D8;&lt;/P&gt;&lt;P&gt;%let visit2=D15;&lt;/P&gt;&lt;P&gt;%let visit3=D29;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you had created this set instead, the problem would become easy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let D8=1;&lt;/P&gt;&lt;P&gt;%let D15=2;&lt;/P&gt;&lt;P&gt;%let D29=3;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With those on place, SYMGET(FOLDER) would solve this problem easily.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 13:22:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128879#M26303</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2013-09-04T13:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128880#M26304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure if this is what you want, but&amp;nbsp; Macro variables is not an ideal way of solving this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data visit;&lt;/P&gt;&lt;P&gt;input folder $50.;&lt;/P&gt;&lt;P&gt;call symputx(cats('visit',_n_),folder);&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;D8&lt;/P&gt;&lt;P&gt;D15&lt;/P&gt;&lt;P&gt;D29&lt;/P&gt;&lt;P&gt;D43&lt;/P&gt;&lt;P&gt;D57&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select count(folder) into :numrows trimmed from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select quote(cats(folder)) into :visit separated by ', ' from visit;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data master;&lt;/P&gt;&lt;P&gt;input id :$50. folder :$50.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 D8&lt;/P&gt;&lt;P&gt;1 D15&lt;/P&gt;&lt;P&gt;1 D29&lt;/P&gt;&lt;P&gt;1 D43&lt;/P&gt;&lt;P&gt;2 D15&lt;/P&gt;&lt;P&gt;2 D29&lt;/P&gt;&lt;P&gt;2 D43&lt;/P&gt;&lt;P&gt;2 D5&lt;/P&gt;&lt;P&gt;3 D8&lt;/P&gt;&lt;P&gt;3 D15&lt;/P&gt;&lt;P&gt;3 D29&lt;/P&gt;&lt;P&gt;3 D43&lt;/P&gt;&lt;P&gt;3 D5&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&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;data want; &lt;/P&gt;&lt;P&gt;array temp(&amp;amp;numrows) $8. _temporary_ (&amp;amp;visit); &lt;/P&gt;&lt;P&gt;array art (100) $8. _temporary_; /*100 is an artificial number to cover the maximum possible dimension of the array&lt;/P&gt;&lt;P&gt;&amp;nbsp; , you can get it programatically by adding another pass or using Hash*/&lt;/P&gt;&lt;P&gt; do _n_=1 by 1 until (last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set master;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp; art(_n_)=folder;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; do i=1 to dim(temp);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if temp(i) not in art then do; folder=temp(i); output;end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; call missing (of art(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp; do until (last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set master;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&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;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 13:34:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128880#M26304</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2013-09-04T13:34:38Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128881#M26305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't think I understand the question.&amp;nbsp; Looking at Astonishing's answer it appears you want to create a new variable VISITN or something.&amp;nbsp; While you could do that as suggest with macro variables and SYMGET a value informat would be much "more better". &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 14:25:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128881#M26305</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2013-09-04T14:25:50Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128882#M26306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Astounding &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 14:31:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128882#M26306</guid>
      <dc:creator>P_Sharma</dc:creator>
      <dc:date>2013-09-04T14:31:33Z</dc:date>
    </item>
    <item>
      <title>Re: Using macro variables, add visit columns to data in case not present. [Do not use data merge to achieve this result]</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128883#M26307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank Hai.kuo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes it does answer my question. I was not sure how to include MV in master data and get all possible visits but arrays works.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 14:32:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-macro-variables-add-visit-columns-to-data-in-case-not/m-p/128883#M26307</guid>
      <dc:creator>P_Sharma</dc:creator>
      <dc:date>2013-09-04T14:32:47Z</dc:date>
    </item>
  </channel>
</rss>

