<?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 reading input dataset as working library in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758265#M239390</link>
    <description>&lt;P&gt;&lt;FONT size="3"&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I have ~200 data-sets that are stored in 1 library (that I've called "mbuild"). Each dataset has 1 row of data that is the mean and percentiles for 1 variable. In each dataset, the variable information (e.g., height, weight, etc.) is only stored in the label. The datasets are numbered in sets of 54 (e.g.&amp;nbsp;mbuild.ADmb_RBC1_1 -&amp;gt; mbuild.ADmb_RBC1_54, mbuild.ADmb_SF1_1 -&amp;gt; mbuild.ADmb_SF1_54... etc,).&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="af544_0-1627590163232.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/62111i0BB86D207ABD1E7C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="af544_0-1627590163232.png" alt="af544_0-1627590163232.png" /&gt;&lt;/span&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I want them all in the same dataset, and initially, used this macro ( a few times, per the changing names) to stack them:&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%MACRO&lt;/STRONG&gt;&lt;/SPAN&gt; GENSET(FILEPFX=, LOW=, HIGH=); &lt;SPAN class="s2"&gt;%DO&lt;/SPAN&gt; CYC=&amp;amp;LOW &lt;SPAN class="s2"&gt;%TO&lt;/SPAN&gt; &amp;amp;HIGH; &amp;amp;FILEPFX&amp;amp;CYC &lt;SPAN class="s2"&gt;%END&lt;/SPAN&gt;; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;%MEND&lt;/STRONG&gt;&lt;/SPAN&gt; GENSET;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;want ; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; %&lt;STRONG&gt;&lt;I&gt;GENSET&lt;/I&gt;&lt;/STRONG&gt;(FILEPFX= mbuild.ADmb_RBC1_, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;54&lt;/STRONG&gt;&lt;/SPAN&gt;); &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;It worked perfectly, but, the information in the label is lost, so I can't tell which row goes to which dataset (of course I could manually line them up, but I want to automate it). &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I updated a macro I found on this site (thanks!!) to read through the list of datasets, extract the label and create a new dataset with the data labeled:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/SPAN&gt; getlabel (x=);&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; total_vars = &lt;SPAN class="s2"&gt;%sysfunc&lt;/SPAN&gt;(countw(&amp;amp;x) );&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%do&lt;/SPAN&gt; i = &lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;%to&lt;/SPAN&gt; &amp;amp;total_vars;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; selected_var = &lt;SPAN class="s2"&gt;%scan&lt;/SPAN&gt;(&amp;amp;x, &amp;amp;i);&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;data new_&amp;amp;i ; set &amp;amp;selected_var;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;comp = vlabel(Mean); run;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%end&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;SPAN class="s4"&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s4"&gt;I then loop in the %genset macros, and it should give me datasets new_1 to new_200, that I can stack together for additional analyses.&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s4"&gt;The macro works perfectly when I test it using datasets that I've copied into the working library:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test1; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_1; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test2; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_2; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test3; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_3; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac1; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_1; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac2; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_2; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac3; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_3; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;%&lt;STRONG&gt;getlabel&lt;/STRONG&gt; (x = %&lt;STRONG&gt;GENSET&lt;/STRONG&gt;(FILEPFX= test, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/SPAN&gt;);&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="Apple-converted-space"&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;&lt;/SPAN&gt;%&lt;STRONG&gt;GENSET&lt;/STRONG&gt;(FILEPFX= prac, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/SPAN&gt;););&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;All 6 datasets are created, and have the 5 variables that I want (the original 4+ the new variable "comp" with the label in it)&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;But, If I try to call in the datasets where they currently reside (the 'mbuild' library) - I'm getting an error that makes it seem like the macro can't read the libname? :&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="af544_1-1627590750753.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/62112i86ABF752D401CF75/image-size/large?v=v2&amp;amp;px=999" role="button" title="af544_1-1627590750753.png" alt="af544_1-1627590750753.png" /&gt;&lt;/span&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The %genset macro works perfectly on its own (and reads the libname correctly), but once its inside the %getlabel macro it crashes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;I tried to update the above macro to first copy all of the datasets into the working library (below, in case useful), but I'm getting similar errors&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/SPAN&gt; movetowork (x=);&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; total_vars = &lt;SPAN class="s2"&gt;%sysfunc&lt;/SPAN&gt;(countw(&amp;amp;x) );&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%do&lt;/SPAN&gt; i = &lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;%to&lt;/SPAN&gt; &amp;amp;total_vars;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; selected_var = &lt;SPAN class="s2"&gt;%scan&lt;/SPAN&gt;(&amp;amp;x, &amp;amp;i);&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;data new_&amp;amp;selected_var ; set &amp;amp;selected_var; run;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;%end&lt;SPAN class="s4"&gt;;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;SPAN class="s4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Is there a way to update the macro so it reads "mbuild" as the dataset's libname?&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Thank you so much!&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 29 Jul 2021 20:43:52 GMT</pubDate>
    <dc:creator>af544</dc:creator>
    <dc:date>2021-07-29T20:43:52Z</dc:date>
    <item>
      <title>Macro reading input dataset as working library</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758265#M239390</link>
      <description>&lt;P&gt;&lt;FONT size="3"&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I have ~200 data-sets that are stored in 1 library (that I've called "mbuild"). Each dataset has 1 row of data that is the mean and percentiles for 1 variable. In each dataset, the variable information (e.g., height, weight, etc.) is only stored in the label. The datasets are numbered in sets of 54 (e.g.&amp;nbsp;mbuild.ADmb_RBC1_1 -&amp;gt; mbuild.ADmb_RBC1_54, mbuild.ADmb_SF1_1 -&amp;gt; mbuild.ADmb_SF1_54... etc,).&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="af544_0-1627590163232.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/62111i0BB86D207ABD1E7C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="af544_0-1627590163232.png" alt="af544_0-1627590163232.png" /&gt;&lt;/span&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I want them all in the same dataset, and initially, used this macro ( a few times, per the changing names) to stack them:&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%MACRO&lt;/STRONG&gt;&lt;/SPAN&gt; GENSET(FILEPFX=, LOW=, HIGH=); &lt;SPAN class="s2"&gt;%DO&lt;/SPAN&gt; CYC=&amp;amp;LOW &lt;SPAN class="s2"&gt;%TO&lt;/SPAN&gt; &amp;amp;HIGH; &amp;amp;FILEPFX&amp;amp;CYC &lt;SPAN class="s2"&gt;%END&lt;/SPAN&gt;; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;%MEND&lt;/STRONG&gt;&lt;/SPAN&gt; GENSET;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;want ; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; %&lt;STRONG&gt;&lt;I&gt;GENSET&lt;/I&gt;&lt;/STRONG&gt;(FILEPFX= mbuild.ADmb_RBC1_, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;54&lt;/STRONG&gt;&lt;/SPAN&gt;); &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;It worked perfectly, but, the information in the label is lost, so I can't tell which row goes to which dataset (of course I could manually line them up, but I want to automate it). &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;I updated a macro I found on this site (thanks!!) to read through the list of datasets, extract the label and create a new dataset with the data labeled:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/SPAN&gt; getlabel (x=);&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; total_vars = &lt;SPAN class="s2"&gt;%sysfunc&lt;/SPAN&gt;(countw(&amp;amp;x) );&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%do&lt;/SPAN&gt; i = &lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;%to&lt;/SPAN&gt; &amp;amp;total_vars;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; selected_var = &lt;SPAN class="s2"&gt;%scan&lt;/SPAN&gt;(&amp;amp;x, &amp;amp;i);&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;data new_&amp;amp;i ; set &amp;amp;selected_var;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;comp = vlabel(Mean); run;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%end&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;SPAN class="s4"&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s4"&gt;I then loop in the %genset macros, and it should give me datasets new_1 to new_200, that I can stack together for additional analyses.&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&lt;FONT size="3"&gt;&lt;SPAN class="s4"&gt;The macro works perfectly when I test it using datasets that I've copied into the working library:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test1; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_1; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test2; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_2; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; test3; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_3; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac1; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_1; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac2; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_2; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; prac3; &lt;SPAN class="s2"&gt;set&lt;/SPAN&gt; mbuild.ADmb_SF1_3; &lt;SPAN class="s1"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;%&lt;STRONG&gt;getlabel&lt;/STRONG&gt; (x = %&lt;STRONG&gt;GENSET&lt;/STRONG&gt;(FILEPFX= test, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/SPAN&gt;);&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;&lt;SPAN class="Apple-converted-space"&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;&lt;/SPAN&gt;%&lt;STRONG&gt;GENSET&lt;/STRONG&gt;(FILEPFX= prac, LOW=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;, HIGH=&lt;SPAN class="s3"&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/SPAN&gt;););&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="2"&gt;All 6 datasets are created, and have the 5 variables that I want (the original 4+ the new variable "comp" with the label in it)&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;FONT size="3"&gt;But, If I try to call in the datasets where they currently reside (the 'mbuild' library) - I'm getting an error that makes it seem like the macro can't read the libname? :&lt;/FONT&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="af544_1-1627590750753.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/62112i86ABF752D401CF75/image-size/large?v=v2&amp;amp;px=999" role="button" title="af544_1-1627590750753.png" alt="af544_1-1627590750753.png" /&gt;&lt;/span&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The %genset macro works perfectly on its own (and reads the libname correctly), but once its inside the %getlabel macro it crashes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;I tried to update the above macro to first copy all of the datasets into the working library (below, in case useful), but I'm getting similar errors&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/SPAN&gt; movetowork (x=);&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; total_vars = &lt;SPAN class="s2"&gt;%sysfunc&lt;/SPAN&gt;(countw(&amp;amp;x) );&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%do&lt;/SPAN&gt; i = &lt;SPAN class="s3"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;%to&lt;/SPAN&gt; &amp;amp;total_vars;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;%let&lt;/SPAN&gt; selected_var = &lt;SPAN class="s2"&gt;%scan&lt;/SPAN&gt;(&amp;amp;x, &amp;amp;i);&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;data new_&amp;amp;selected_var ; set &amp;amp;selected_var; run;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;%end&lt;SPAN class="s4"&gt;;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;SPAN class="s4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Is there a way to update the macro so it reads "mbuild" as the dataset's libname?&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Thank you so much!&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 20:43:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758265#M239390</guid>
      <dc:creator>af544</dc:creator>
      <dc:date>2021-07-29T20:43:52Z</dc:date>
    </item>
    <item>
      <title>Re: Macro reading input dataset as working library</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758276#M239397</link>
      <description>&lt;P&gt;Set the mprint option prior to running the macro:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Options mprint;&lt;/P&gt;
&lt;P&gt;%anymacro(&amp;lt;parameters)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;options nomprint; /*to stop the mprint*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will generate details of the code created by the macro and give you a better chance of finding a problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your parameter X is apparently supposed to be a list of data set names. When you use %scan one of the default delimiters is a . So if pass data set named Mbuild.somevar each piece processed separately, not the entire data set, generating set not found errors.&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;%macro dummy(x=work.junk work.example);
  %let total_vars = %sysfunc(countw(&amp;amp;x) );
    %do i = 1 %to &amp;amp;total_vars;
        %let selected_var = %scan(&amp;amp;x, &amp;amp;i);
        %put i=: &amp;amp;i. Selected_var= &amp;amp;selected_var.;
   %end;
%mend;

%dummy()&lt;/PRE&gt;
&lt;P&gt;which using the default data set names generates this output:&lt;/P&gt;
&lt;PRE&gt;i=: 1 Selected_var= work
i=: 2 Selected_var= junk
i=: 3 Selected_var= work
i=: 4 Selected_var= example
&lt;/PRE&gt;
&lt;P&gt;So you need to 1) modify the SCAN to get the library.dataset and 2) the Countw to get the correct count of "words" , which means providing a list of other delimiters to use. If the list created by Genset is space delimited then maybe&lt;/P&gt;
&lt;PRE&gt;%macro dummy(x=work.junk work.example);
  %let total_vars = %sysfunc(countw(&amp;amp;x,%str(' ')) );
    %do i = 1 %to &amp;amp;total_vars;
        %let selected_var = %scan(&amp;amp;x, &amp;amp;i,%str(' ') );
        %put i=: &amp;amp;i. Selected_var= &amp;amp;selected_var.;
   %end;
%mend;

%dummy()&lt;/PRE&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;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 21:13:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758276#M239397</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-07-29T21:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: Macro reading input dataset as working library</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758283#M239402</link>
      <description>&lt;P&gt;Thank you so much! This worked perfectly &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And the tip re: &lt;EM&gt;options mprint&lt;/EM&gt;&amp;nbsp; will surely save me in the future! thanks so much!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 21:28:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758283#M239402</guid>
      <dc:creator>af544</dc:creator>
      <dc:date>2021-07-29T21:28:25Z</dc:date>
    </item>
    <item>
      <title>Re: Macro reading input dataset as working library</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758284#M239403</link>
      <description>&lt;P&gt;I don't think you need a macro.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are the variable names in your dataset all the same and you just have different labels?&amp;nbsp; And do those label always correspond to the dataset name.&amp;nbsp; If so you just need a new variable specifying the name of the source dataset, and you will not have lost any information in the labels.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If so, then you can use the INDSNAME argument of the SET statement to get the dataset name as an identifier for each observation in your consolidated dataset:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want_adm_rbc;
  set mbuild.ADM_RBC: indsname=_dsn;
  dsn=scan(_dsn,-1,'.');
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This reads every dataset in mbuild whose name starts with ADM_RBC.&amp;nbsp; The variable _dsn (from "indsname=_dsn") has both the libname and dataset name, but it will be deleted at end of the data step.&amp;nbsp; So I just stripped off the libname and saved the dataset name in the variable DSN (the rightmost text after a period).&amp;nbsp; This should provide the information you need.&amp;nbsp; If you have 54 such ADM_RBC datasets, you'll get 54 observations, with a new variable: DSN.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just make sure that the SET statement accommodates all the datasets in mbuild that you want to consolidate.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 21:28:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-reading-input-dataset-as-working-library/m-p/758284#M239403</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-07-29T21:28:54Z</dc:date>
    </item>
  </channel>
</rss>

