<?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: macro loop in data set in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767503#M243333</link>
    <description>&lt;P&gt;Thank you very much I almost done, i have one final question how can I PADL the&amp;nbsp; variable ms=1, i want the macro read the data base as in this example:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;rescap_01_2021 instead of rescap_1_2021&lt;/P&gt;</description>
    <pubDate>Mon, 13 Sep 2021 18:01:27 GMT</pubDate>
    <dc:creator>ERI_RAMIREZ</dc:creator>
    <dc:date>2021-09-13T18:01:27Z</dc:date>
    <item>
      <title>macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767449#M243307</link>
      <description>&lt;P&gt;HI! I´m a begginer, and I want to use diferent data sets with similar syntax name, it only changes the month and year; i tried with this but When I try to view the data sets they dont exist. Can some one help me&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro bdPrimasVertical;&lt;/P&gt;&lt;P&gt;%do yr=2019 %to %2021;&lt;BR /&gt;%do ms=10 %to %12;&lt;/P&gt;&lt;P&gt;data work.rescapi_&amp;amp;yr.._&amp;amp;ms. (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D&amp;amp;yr..rescap_2019_&amp;amp;ms. (RENAME=(pe_2019_&amp;amp;ms.=PrimaEmitida));&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;PROC SORT DATA=rescapi_&amp;amp;yr.._&amp;amp;ms.;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;%end;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 15:43:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767449#M243307</guid>
      <dc:creator>ERI_RAMIREZ</dc:creator>
      <dc:date>2021-09-13T15:43:18Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767455#M243311</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro bdPrimasVertical;

%do yr=2019 %to 2021;
%do ms=10 %to 12;

data work.rescapi_&amp;amp;yr._&amp;amp;ms. 
(keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito 
      PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro 
      MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI 
      CR_calc RC_calc CO_calc);
set D&amp;amp;yr..rescap_2019_&amp;amp;ms. (RENAME=(pe_2019_&amp;amp;ms.=PrimaEmitida));
run;

PROC SORT DATA=rescapi_&amp;amp;yr._&amp;amp;ms.;
BY NoPoliza;
RUN;

%end;
%end;
%mend;

%bdPrimasVertical&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Koen&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 15:51:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767455#M243311</guid>
      <dc:creator>sbxkoenk</dc:creator>
      <dc:date>2021-09-13T15:51:11Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767456#M243312</link>
      <description>&lt;P&gt;Instead can you leverage your naming convention with shortcut lists? Or can you query the name from sashelp.vtable into a macro variable instead? Both are simpler than macro loops within a data step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is a reference that illustrates how to refer to variables and datasets in a short cut list:&lt;BR /&gt;&lt;A href="https://blogs.sas.com/content/iml/2018/05/29/6-easy-ways-to-specify-a-list-of-variables-in-sas.html" target="_blank"&gt;https://blogs.sas.com/content/iml/2018/05/29/6-easy-ways-to-specify-a-list-of-variables-in-sas.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hard to tell the issue with your current code - do you have the data sets in a library? It seems like you're using two periods which would imply a library reference but it doesn't seem to be correct. Can you post code that works - non macro code is fine - and indicate how you want to generalize it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I made a rough attempt below but no way of knowing if it's right or not.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've also added the macro debugging options (MPRINT/SYMBOLGEN) so you can use those to get more information in your log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options mprint symbolgen;

%macro bdPrimasVertical;

%do yr=2019 %to %2021;
%do ms=10 %to %12;

data work.rescapi_&amp;amp;yr._&amp;amp;ms. (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);
set D&amp;amp;yr.rescap_2019_&amp;amp;ms. (RENAME=(pe_2019_&amp;amp;ms.=PrimaEmitida));
run;

PROC SORT DATA=rescapi_&amp;amp;yr._&amp;amp;ms.;
BY NoPoliza;
RUN;

%end;
%end;
%mend;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/397726"&gt;@ERI_RAMIREZ&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;HI! I´m a begginer, and I want to use diferent data sets with similar syntax name, it only changes the month and year; i tried with this but When I try to view the data sets they dont exist. Can some one help me&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro bdPrimasVertical;&lt;/P&gt;
&lt;P&gt;%do yr=2019 %to %2021;&lt;BR /&gt;%do ms=10 %to %12;&lt;/P&gt;
&lt;P&gt;data work.rescapi_&amp;amp;yr.._&amp;amp;ms. (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D&amp;amp;yr..rescap_2019_&amp;amp;ms. (RENAME=(pe_2019_&amp;amp;ms.=PrimaEmitida));&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;PROC SORT DATA=rescapi_&amp;amp;yr.._&amp;amp;ms.;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;
&lt;P&gt;%end;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 15:54:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767456#M243312</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-09-13T15:54:19Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767468#M243318</link>
      <description>&lt;P&gt;Share your log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have the correct code then this bit is suspect:&lt;/P&gt;
&lt;PRE&gt;data work.rescapi_&amp;amp;yr.&lt;FONT size="6" color="#FF0000"&gt;.&lt;/FONT&gt;_&amp;amp;ms. &lt;/PRE&gt;
&lt;P&gt;The second dot would make the data set name resolve to work.rescapi_2019&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;_10&amp;nbsp; The first dot separates the library name from the data set name. The second dot in the resolved value should throw an error of Invalid data set name in the log.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 16:17:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767468#M243318</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-09-13T16:17:20Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767485#M243326</link>
      <description>&lt;P&gt;I have different data bases with the following nomenclature (rescap_&amp;amp;year_&amp;amp;month) in dif routes than only have the following nomenclature (D.$YEAR), Years going to 1930 to 2021 and month from 01 to 12. I need specific info from each data bases , then i need to put the results in one database together in vertical way by using a "set".&amp;nbsp;&lt;/P&gt;&lt;P&gt;This exercise will be done as a acumulative process&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;I tried this for the following example and it works:&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*U N E R E S C A P 2 0 2 1*/&lt;/P&gt;&lt;P&gt;data WORK.rescap_2021_08 (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D2021.rescap_2021_08 (RENAME=(pe_2021_08=PrimaEmitida));&lt;BR /&gt;run;&lt;BR /&gt;PROC SORT DATA=rescap_2021_08;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;data WORK.rescap_2020_08 (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D2020.rescap_2020_08 (RENAME=(pe_2020_08=PrimaEmitida));&lt;BR /&gt;run;&lt;BR /&gt;PROC SORT DATA=rescap_2020_08;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;data WORK.rescap_2021_07 (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D2021.rescap_2021_07 (RENAME=(pe_2021_07=PrimaEmitida));&lt;BR /&gt;run;&lt;BR /&gt;PROC SORT DATA=rescap_2021_07;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data WORK.rescap_2021_06 (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI CR_calc RC_calc CO_calc);&lt;BR /&gt;set D2021.rescap_2021_06 (RENAME=(pe_2021_06=PrimaEmitida));&lt;BR /&gt;run;&lt;BR /&gt;PROC SORT DATA=rescap_2021_06;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;/*UNE BASES FINALES*/&lt;/P&gt;&lt;P&gt;DATA WORK.VERTICAL;&lt;BR /&gt;SET rescap_2021_08 rescap_2021_08 rescap_2021_07;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;PROC SORT DATA=VERTICAL;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But when i try this macro, i cant see the results&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro bdPrimasVertical;&lt;/P&gt;&lt;P&gt;%do yr=2019 %to 2021;&lt;BR /&gt;%do ms=1 %to 12;&lt;/P&gt;&lt;P&gt;data earf.rescapi_&amp;amp;yr._&amp;amp;ms.&lt;BR /&gt;(keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito&lt;BR /&gt;PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro&lt;BR /&gt;MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI&lt;BR /&gt;CR_calc RC_calc CO_calc);&lt;BR /&gt;set D&amp;amp;yr..rescap_&amp;amp;yr._&amp;amp;ms. (RENAME=(pe_&amp;amp;yr_&amp;amp;ms.=PrimaEmitida));&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;PROC SORT DATA=rescapi_&amp;amp;yr._&amp;amp;ms.;&lt;BR /&gt;BY NoPoliza;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;%end;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;this is the log of the macro:&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 The SAS System 09:36 Monday, September 13, 2021&lt;/P&gt;&lt;P&gt;1 ;*';*";*/;quit;run;&lt;BR /&gt;2 OPTIONS PAGENO=MIN;&lt;BR /&gt;3 %LET _CLIENTTASKLABEL='Programa';&lt;BR /&gt;4 %LET _CLIENTPROCESSFLOWNAME='Flujo del proceso';&lt;BR /&gt;5 %LET _CLIENTPROJECTPATH='C:\Users\CRE-EARF\Documents\Cierres\RespaldoCierre09092021.egp';&lt;BR /&gt;6 %LET _CLIENTPROJECTPATHHOST='510-CRE-EARF';&lt;BR /&gt;7 %LET _CLIENTPROJECTNAME='RespaldoCierre09092021.egp';&lt;BR /&gt;8 %LET _SASPROGRAMFILE='';&lt;BR /&gt;9 %LET _SASPROGRAMFILEHOST='';&lt;BR /&gt;10&lt;BR /&gt;11 ODS _ALL_ CLOSE;&lt;BR /&gt;12 OPTIONS DEV=PNG;&lt;BR /&gt;13 GOPTIONS XPIXELS=0 YPIXELS=0;&lt;BR /&gt;14 FILENAME EGSR TEMP;&lt;BR /&gt;15 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR&lt;BR /&gt;16 STYLE=HtmlBlue&lt;BR /&gt;17 STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/7.1/Styles/HtmlBlue.css")&lt;BR /&gt;18 NOGTITLE&lt;BR /&gt;19 NOGFOOTNOTE&lt;BR /&gt;20 GPATH=&amp;amp;sasworklocation&lt;BR /&gt;SYMBOLGEN: Macro variable SASWORKLOCATION resolves to "/work/SAS_work443E000071AA_sas-desa/SAS_work68B8000071AA_sas-desa/"&lt;BR /&gt;21 ENCODING=UTF8&lt;BR /&gt;22 options(rolap="on")&lt;BR /&gt;23 ;&lt;BR /&gt;NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR&lt;BR /&gt;24&lt;BR /&gt;25 GOPTIONS ACCESSIBLE;&lt;BR /&gt;26&lt;BR /&gt;27 %macro bdPrimasVertical;&lt;BR /&gt;28&lt;BR /&gt;29 %do yr=2019 %to 2021;&lt;BR /&gt;30 %do ms=1 %to 12;&lt;BR /&gt;31&lt;BR /&gt;32 data earf.rescapi_&amp;amp;yr._&amp;amp;ms.&lt;BR /&gt;33 (keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito&lt;BR /&gt;34 PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro&lt;BR /&gt;35 MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI&lt;BR /&gt;36 CR_calc RC_calc CO_calc);&lt;BR /&gt;37 set D&amp;amp;yr..rescap_&amp;amp;yr._&amp;amp;ms. (RENAME=(pe_&amp;amp;yr_&amp;amp;ms.=PrimaEmitida));&lt;BR /&gt;38 run;&lt;BR /&gt;39&lt;BR /&gt;40 PROC SORT DATA=rescapi_&amp;amp;yr._&amp;amp;ms.;&lt;BR /&gt;41 BY NoPoliza;&lt;BR /&gt;42 RUN;&lt;BR /&gt;43&lt;BR /&gt;44 %end;&lt;BR /&gt;45 %end;&lt;BR /&gt;46 %mend;&lt;BR /&gt;47&lt;BR /&gt;48 GOPTIONS NOACCESSIBLE;&lt;BR /&gt;49 %LET _CLIENTTASKLABEL=;&lt;BR /&gt;50 %LET _CLIENTPROCESSFLOWNAME=;&lt;BR /&gt;51 %LET _CLIENTPROJECTPATH=;&lt;BR /&gt;52 %LET _CLIENTPROJECTPATHHOST=;&lt;BR /&gt;53 %LET _CLIENTPROJECTNAME=;&lt;BR /&gt;54 %LET _SASPROGRAMFILE=;&lt;BR /&gt;55 %LET _SASPROGRAMFILEHOST=;&lt;BR /&gt;56&lt;BR /&gt;2 The SAS System 09:36 Monday, September 13, 2021&lt;/P&gt;&lt;P&gt;57 ;*';*";*/;quit;run;&lt;BR /&gt;58 ODS _ALL_ CLOSE;&lt;BR /&gt;59&lt;BR /&gt;60&lt;BR /&gt;61 QUIT; RUN;&lt;BR /&gt;62&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>Mon, 13 Sep 2021 17:00:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767485#M243326</guid>
      <dc:creator>ERI_RAMIREZ</dc:creator>
      <dc:date>2021-09-13T17:00:10Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767492#M243328</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro bdPrimasVertical;

%do yr=2019 %to 2021;
%do ms=1 %to 12;

data rescapi_&amp;amp;yr._&amp;amp;ms.
(keep=NoPoliza statuspoliza_orig FechaEmision fechavaluacion FechaFirmaCredito
PlazoMeses FrecPago PrimaEmitida MontoSolicitado MontoSolicitadoSiniestro
MontoPagadoSiniestro sumaasegurada_MN BEL_MN NuevaOPC_16_MN PVM TasaGPI
CR_calc RC_calc CO_calc);

set D&amp;amp;yr..rescap_&amp;amp;yr._&amp;amp;ms. (RENAME=(pe_&amp;amp;yr_&amp;amp;ms.=PrimaEmitida));
run;

PROC SORT DATA=rescapi_&amp;amp;yr._&amp;amp;ms.;
BY NoPoliza;
RUN;

%end;
%end;
%mend;

%bdPrimasVertical;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Your code looks correct to me, in the latest post - except for the small fact that you never run the macro. The macro is a set of stored code that you need to explicitly execute, so adding the last line may be all you need. You did have the double period issue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;FYI- you may want to consider an alternative - stacking all your data sets into one and using BY group processing. How big are each of these data sets?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Something like this to get started and then adding in your drop/keep as needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data rescap_2021;
set D2021.rescap_2021_:  indsname=source;

yearMonth = source;
primaEmitida = coalesce(of pe_2021_:);

run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Sep 2021 17:26:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767492#M243328</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-09-13T17:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767503#M243333</link>
      <description>&lt;P&gt;Thank you very much I almost done, i have one final question how can I PADL the&amp;nbsp; variable ms=1, i want the macro read the data base as in this example:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;rescap_01_2021 instead of rescap_1_2021&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 18:01:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767503#M243333</guid>
      <dc:creator>ERI_RAMIREZ</dc:creator>
      <dc:date>2021-09-13T18:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: macro loop in data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767508#M243335</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/397726"&gt;@ERI_RAMIREZ&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thank you very much I almost done, i have one final question how can I PADL the&amp;nbsp; variable ms=1, i want the macro read the data base as in this example:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;rescap_01_2021 instead of rescap_1_2021&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you are using a %DO loop to increment a macro variable as if it was a number, like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%do month=1 %to 12;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But you need the value to have leading zeros then use the PUTN() function with the Z format to add the leading zeros.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%do year=2020 %to 2021 ;
  %do month=1 %to 12;
    %let month=%sysfunc(putn(&amp;amp;month,Z2.));
    %let dsname=rescap_&amp;amp;month._&amp;amp;year;
...&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Sep 2021 18:19:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-loop-in-data-set/m-p/767508#M243335</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-09-13T18:19:23Z</dc:date>
    </item>
  </channel>
</rss>

