<?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: Import data from multiple years and months using Macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443616#M110999</link>
    <description>&lt;P&gt;Thank you so much, Tom. After your reply, I understand it didn't work previously because the leading 0 is omitted. Now it works (code below).&lt;/P&gt;&lt;P&gt;Do you know is there any way to create an array to store values of 0331 0630 0930 1231 and reference each one in a do loop, rather than repeat the same coding for all four cases? Something like&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%Array(mmdd, 331, 630, 930, 1231)&lt;/P&gt;&lt;P&gt;%do j = mmdd{1} %to mmdd{4}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I searched but no luck...thank you in advance....&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;options mlogic;&lt;BR /&gt;options mprint on;&lt;BR /&gt;options symbolgen;&lt;BR /&gt;/* create a macro to combine reports from every quarter and every year into one file*/&lt;BR /&gt;%macro year(starty=1993, endy=2017, increy= 1, startm=0331, endm=1231, increm = 300);q&lt;BR /&gt;%local i;&lt;BR /&gt;%local j;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0331;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0630;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0930;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=1231;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;BR /&gt;%year(starty=1993,endy=2017, increy=1, startm=0331, endm=1231, increm = 300)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 08 Mar 2018 04:42:57 GMT</pubDate>
    <dc:creator>changxuosu1</dc:creator>
    <dc:date>2018-03-08T04:42:57Z</dc:date>
    <item>
      <title>Import data from multiple years and months using Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443471#M110949</link>
      <description>&lt;P&gt;Hi Everyone, thank you for reading the post. I want to import quarterly&amp;nbsp;data from 1993-2017. I created a macro to automate things. I'm a beginner in Macro. I created two macro variables and used two loops. One loops around the year, the other loops quarterly&amp;nbsp;so that I can get data from March, June, September, and December for each year. The code I wrote somehow only imported data from December in every year.&amp;nbsp; Does anyone have any ideas? Thank you in advance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;libname conso "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\data analysis";&lt;BR /&gt;options mlogic;&lt;BR /&gt;options mprint;&lt;BR /&gt;options symbolgen;&lt;/P&gt;&lt;P&gt;/* create a macro to combine reports from every quarter and every year into one file*/&lt;BR /&gt;%macro year(starty=1993, endy=2017, increy= 1, startm=0331, endm=1231, increm = 300);&lt;BR /&gt;%local i;&lt;BR /&gt;%local j;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%do j = &amp;amp;startm %to &amp;amp;endm %by &amp;amp;increm;&lt;BR /&gt;proc import out = conso.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;j.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;j._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;/P&gt;&lt;P&gt;%year(starty=1993,endy=2017, increy=1, startm=0331, endm=1231, increm = 300)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 19:26:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443471#M110949</guid>
      <dc:creator>changxuosu1</dc:creator>
      <dc:date>2018-03-07T19:26:37Z</dc:date>
    </item>
    <item>
      <title>Re: Import data from multiple years and months using Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443475#M110951</link>
      <description>&lt;P&gt;Turn on MPRINT option and look at what code you generated.&lt;/P&gt;
&lt;P&gt;If you really need those leading zeros then make sure to add them back.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%do j=0331 to 1231 by 300 ;
   %let mmdd = %sysfunc(putn(&amp;amp;j,Z4));
   %put &amp;amp;=j  &amp;amp;=mmdd;
%end;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Is there really a file for 20170631 and 20170931 ? Those are invalid date strings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But since your files are CSV files why are you using PROC IMPORT?&amp;nbsp; Why not just write a data step to read the data files?&lt;/P&gt;
&lt;P&gt;You could probably read all of the files in one data step if they all have the same format.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 19:44:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443475#M110951</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-03-07T19:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: Import data from multiple years and months using Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443547#M110976</link>
      <description>thank you, Tom. Learned a lot from your reply!</description>
      <pubDate>Wed, 07 Mar 2018 23:03:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443547#M110976</guid>
      <dc:creator>changxuosu1</dc:creator>
      <dc:date>2018-03-07T23:03:23Z</dc:date>
    </item>
    <item>
      <title>Re: Import data from multiple years and months using Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443616#M110999</link>
      <description>&lt;P&gt;Thank you so much, Tom. After your reply, I understand it didn't work previously because the leading 0 is omitted. Now it works (code below).&lt;/P&gt;&lt;P&gt;Do you know is there any way to create an array to store values of 0331 0630 0930 1231 and reference each one in a do loop, rather than repeat the same coding for all four cases? Something like&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%Array(mmdd, 331, 630, 930, 1231)&lt;/P&gt;&lt;P&gt;%do j = mmdd{1} %to mmdd{4}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I searched but no luck...thank you in advance....&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;options mlogic;&lt;BR /&gt;options mprint on;&lt;BR /&gt;options symbolgen;&lt;BR /&gt;/* create a macro to combine reports from every quarter and every year into one file*/&lt;BR /&gt;%macro year(starty=1993, endy=2017, increy= 1, startm=0331, endm=1231, increm = 300);q&lt;BR /&gt;%local i;&lt;BR /&gt;%local j;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0331;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0630;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=0930;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do i = &amp;amp;starty %to &amp;amp;endy %by &amp;amp;increy;&lt;BR /&gt;%let j=1231;&lt;BR /&gt;%let mmdd = %sysfunc(putn(&amp;amp;j,Z4));&lt;BR /&gt;%put &amp;amp;=j &amp;amp;=mmdd;&lt;BR /&gt;proc import out = work.agloan&amp;amp;&amp;amp;i.&amp;amp;j&lt;BR /&gt;datafile = "C:\Users\Chang Xu\Desktop\FIE Chang\Box Sync\FIE Chang\2nd paper\0-data\FDIC\raw_about other attribute\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd.\All_Reports_&amp;amp;&amp;amp;i&amp;amp;&amp;amp;mmdd._Small Business Loans.csv"&lt;BR /&gt;dbms = csv replace; getnames = yes;&lt;BR /&gt;datarow = 2;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;BR /&gt;%year(starty=1993,endy=2017, increy=1, startm=0331, endm=1231, increm = 300)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Mar 2018 04:42:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Import-data-from-multiple-years-and-months-using-Macro/m-p/443616#M110999</guid>
      <dc:creator>changxuosu1</dc:creator>
      <dc:date>2018-03-08T04:42:57Z</dc:date>
    </item>
  </channel>
</rss>

