<?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: Add observation for each month in a year, per person in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576883#M163365</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input id start : date9. end : date9. year;
	format start end date9.;
    datalines;
    1 01APR2000 07MAR2001 2000
    1 01APR2000 07MAR2001 2001
    2 25JUN2000 07FEB2001 2000
    2 25JUN2000 07FEB2001 2001
;
proc sort data=have(keep=id start end) out=_have nodupkey;
by id start end;
run;

data want;
 set _have;
 do i=start to end;
  month=month(i); year=year(i);
  if month ne _month then do;_month=month;output;end;
 end;
 drop _month i;
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 26 Jul 2019 12:40:58 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2019-07-26T12:40:58Z</dc:date>
    <item>
      <title>Add observation for each month in a year, per person</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576874#M163359</link>
      <description>&lt;P&gt;I have data in this form:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input start $ end $ year;
    datalines;
    1 01APR2000 07MAR2001 2000
    1 01APR2000 07MAR2001 2001
    2 25JUN2000 07FEB2001 2000
    2 25JUN2000 07FEB2001 2001
;
  &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I want to add a new column that lists the number of the month, for every month in the year, starting and ending at the existing columns (start and end). I am trying to achieve (for the first person as an example):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; start&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end&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; year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01APR2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 07MAR2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tried a do loop but I'm not sure how to begin back at 1 after reaching 12.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 11:59:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576874#M163359</guid>
      <dc:creator>MB_Analyst</dc:creator>
      <dc:date>2019-07-26T11:59:01Z</dc:date>
    </item>
    <item>
      <title>Re: Add observation for each month in a year, per person</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576876#M163360</link>
      <description>&lt;P&gt;Why are there two records for each person? Your output seems to ignore the second record for person one. Can you explain this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input id start :anydtdte. end :anydtdte. year;
	thismonth=start;
	do while(thismonth&amp;lt;=end);
		year=year(thismonth);
		month=month(thismonth);
		output;
		thismonth=intnx('month',thismonth,1);
	end;
	format start end thismonth date7.;
    datalines;
    1 01APR2000 07MAR2001 2000
    1 01APR2000 07MAR2001 2001
    2 25JUN2000 07FEB2001 2000
    2 25JUN2000 07FEB2001 2001
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Anyway, this code seems to get the year and month that you want.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Advice: treating calendar information such as 01APR2000 as character is not a good thing to do. You want to treat these as SAS dates, which are integers, and you can do this by reading these values in using the ANYDTDTE. format. Treating these as SAS dates will make your life much easier, because then you can use built-in SAS date functions, such as INTCK and INTNX and YEAR and MONTH (and others).&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 12:22:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576876#M163360</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-07-26T12:22:00Z</dc:date>
    </item>
    <item>
      <title>Re: Add observation for each month in a year, per person</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576879#M163362</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/182623"&gt;@MB_Analyst&lt;/a&gt;&amp;nbsp; Good morning&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
    input ID start :date9. end :date9. year;
	format start end date9.;
    datalines;
    1 01APR2000 07MAR2001 2000
    1 01APR2000 07MAR2001 2001
    2 25JUN2000 07FEB2001 2000
    2 25JUN2000 07FEB2001 2001
;
  
data want;
set have;
by id;
if first.id;
_k=start;
do while(_k&amp;lt;=end);
month=month(_k);
year=year(_k);
output;
_k=intnx('month',_k,1);
end;
drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Jul 2019 12:20:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576879#M163362</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-26T12:20:47Z</dc:date>
    </item>
    <item>
      <title>Re: Add observation for each month in a year, per person</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576882#M163364</link>
      <description>&lt;P&gt;Seems like&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;and I have come up with essentially the same solution. As I stated, by treating 01APR2000 as a date value (which is an integer) and not as a character string as in the original code is the key to making this work — and also the key to making it work with relatively simple programming.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 12:34:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576882#M163364</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-07-26T12:34:57Z</dc:date>
    </item>
    <item>
      <title>Re: Add observation for each month in a year, per person</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576883#M163365</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input id start : date9. end : date9. year;
	format start end date9.;
    datalines;
    1 01APR2000 07MAR2001 2000
    1 01APR2000 07MAR2001 2001
    2 25JUN2000 07FEB2001 2000
    2 25JUN2000 07FEB2001 2001
;
proc sort data=have(keep=id start end) out=_have nodupkey;
by id start end;
run;

data want;
 set _have;
 do i=start to end;
  month=month(i); year=year(i);
  if month ne _month then do;_month=month;output;end;
 end;
 drop _month i;
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Jul 2019 12:40:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-observation-for-each-month-in-a-year-per-person/m-p/576883#M163365</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-07-26T12:40:58Z</dc:date>
    </item>
  </channel>
</rss>

