<?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: Do-loop question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423271#M280957</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Policy_Number$ (Policy_Start_date Policy_End_date)(:date9.) Policy_Term Age;
format Policy_Start_date Policy_End_date date9.;
datalines;
101 10-Aug-15 8-Aug-18 3 58
102 25-Feb-16 23-Feb-18 2 55
;

data want(drop=i);
	format Policy_Number Policy_Start_date Policy_End_date StartDate EndDate Policy_Term Age PolicyYear;
	set have;
	do i=1 to Policy_Term;
		if i=1 then StartDate=Policy_Start_date;
		else StartDate=EndDate+1;
		EndDate=intnx('day', StartDate, 364, 'sameday');
		age+1;
		PolicyYear=i;
		output;
	end;
	format StartDate EndDate date9.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 22 Dec 2017 07:47:50 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2017-12-22T07:47:50Z</dc:date>
    <item>
      <title>Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423255#M280953</link>
      <description>&lt;P&gt;My data looks like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="519"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="130"&gt;Policy Number&lt;/TD&gt;
&lt;TD width="115"&gt;Policy Start date&lt;/TD&gt;
&lt;TD width="102"&gt;Policy End date&lt;/TD&gt;
&lt;TD width="98"&gt;Policy Term&lt;/TD&gt;
&lt;TD width="74"&gt;Age&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;10-Aug-15&lt;/TD&gt;
&lt;TD&gt;8-Aug-18&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;58&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;25-Feb-16&lt;/TD&gt;
&lt;TD&gt;23-Feb-18&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;i need the output in the below format. i wanted to break policy start date and Policy end date into years by adding 364 days&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="750"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="117"&gt;Policy Start date&lt;/TD&gt;
&lt;TD width="102"&gt;Policy End date&lt;/TD&gt;
&lt;TD width="110"&gt;Policy End date&lt;/TD&gt;
&lt;TD width="96"&gt;Start Date&lt;/TD&gt;
&lt;TD width="94"&gt;End date&lt;/TD&gt;
&lt;TD width="85"&gt;Policy Term&lt;/TD&gt;
&lt;TD width="72"&gt;Age&lt;/TD&gt;
&lt;TD width="74"&gt;Policy Year&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;10-Aug-15&lt;/TD&gt;
&lt;TD&gt;8-Aug-18&lt;/TD&gt;
&lt;TD&gt;10-Aug-15&lt;/TD&gt;
&lt;TD&gt;8-Aug-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;58&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;10-Aug-15&lt;/TD&gt;
&lt;TD&gt;8-Aug-18&lt;/TD&gt;
&lt;TD&gt;9-Aug-16&lt;/TD&gt;
&lt;TD&gt;8-Aug-17&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;59&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;10-Aug-15&lt;/TD&gt;
&lt;TD&gt;8-Aug-18&lt;/TD&gt;
&lt;TD&gt;9-Aug-17&lt;/TD&gt;
&lt;TD&gt;8-Aug-18&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;25-Feb-16&lt;/TD&gt;
&lt;TD&gt;23-Feb-18&lt;/TD&gt;
&lt;TD&gt;25-Feb-16&lt;/TD&gt;
&lt;TD&gt;23-Feb-17&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;25-Feb-16&lt;/TD&gt;
&lt;TD&gt;23-Feb-18&lt;/TD&gt;
&lt;TD&gt;24-Feb-17&lt;/TD&gt;
&lt;TD&gt;23-Feb-18&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;56&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please let me know if you any query. Can someone help me on this for me.&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;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 03:50:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423255#M280953</guid>
      <dc:creator>msbrvamsi</dc:creator>
      <dc:date>2017-12-22T03:50:40Z</dc:date>
    </item>
    <item>
      <title>Re: Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423257#M280954</link>
      <description>Hi, this is a good scenario for using a DO loop with and OUTPUT statement inside the loop. It will do exactly what you want. You can advance the Policy Start date by either adding 364 or you can use the INTNX function.&lt;BR /&gt;&lt;BR /&gt;  Either way, you should find good examples in the documentation and in previous forum postings.&lt;BR /&gt;&lt;BR /&gt;cynthia</description>
      <pubDate>Fri, 22 Dec 2017 04:32:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423257#M280954</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2017-12-22T04:32:25Z</dc:date>
    </item>
    <item>
      <title>Re: Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423258#M280955</link>
      <description>&lt;P&gt;You could:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Set the initial START_DT=policy_start_date.&lt;/LI&gt;
&lt;LI&gt;Set END_DT=policy_end_date.&amp;nbsp; Then,&amp;nbsp;in a loop,&amp;nbsp;use INTNX to repeatedly step backwards by 1 year, as long as you have END_DT more than 12 months after POLICY_START_DATE until you have END_DT.&amp;nbsp; When END_DT is no longer &amp;gt; 12 month later, you have the initial END_DT&lt;/LI&gt;
&lt;LI&gt;In a subsequent&amp;nbsp;loop, output the record, make the new start_dt= 1 day after end_dt, then increment end_dt by 1 year.&amp;nbsp; The loop should stop when start_dt exceeds policy_end_date.&lt;/LI&gt;
&lt;/OL&gt;</description>
      <pubDate>Fri, 22 Dec 2017 04:41:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423258#M280955</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-12-22T04:41:35Z</dc:date>
    </item>
    <item>
      <title>Re: Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423259#M280956</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; have;&lt;/P&gt;&lt;P&gt;input PolicyNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PolicyStartdate :date7. PolicyEnddate :date7.&amp;nbsp;&amp;nbsp; PolicyTerm&amp;nbsp; Age&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;format &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PolicyStartdate&amp;nbsp; PolicyEnddate&amp;nbsp; date7.;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;101&amp;nbsp;&amp;nbsp; 10-Aug-15&amp;nbsp;&amp;nbsp; 8-Aug-18&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58&lt;/P&gt;&lt;P&gt;102&amp;nbsp;&amp;nbsp; 25-Feb-16&amp;nbsp;&amp;nbsp; 23-Feb-18&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 55&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;do policyyear=&lt;STRONG&gt;1&lt;/STRONG&gt; to policyterm;&lt;/P&gt;&lt;P&gt;if &amp;nbsp;&amp;nbsp; policyyear=&lt;STRONG&gt;1&lt;/STRONG&gt; then startdate=PolicyStartdate;&lt;/P&gt;&lt;P&gt;else if Policyyear&amp;gt;&lt;STRONG&gt;1&lt;/STRONG&gt; then do;&lt;/P&gt;&lt;P&gt;startdate=enddate+&lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;age=age+&lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;enddate =intnx('year',PolicyEnddate , -&lt;STRONG&gt;1&lt;/STRONG&gt;*(policyterm-policyyear), 's');&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;format startdate enddate date7.;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 16:39:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423259#M280956</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-22T16:39:01Z</dc:date>
    </item>
    <item>
      <title>Re: Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423271#M280957</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Policy_Number$ (Policy_Start_date Policy_End_date)(:date9.) Policy_Term Age;
format Policy_Start_date Policy_End_date date9.;
datalines;
101 10-Aug-15 8-Aug-18 3 58
102 25-Feb-16 23-Feb-18 2 55
;

data want(drop=i);
	format Policy_Number Policy_Start_date Policy_End_date StartDate EndDate Policy_Term Age PolicyYear;
	set have;
	do i=1 to Policy_Term;
		if i=1 then StartDate=Policy_Start_date;
		else StartDate=EndDate+1;
		EndDate=intnx('day', StartDate, 364, 'sameday');
		age+1;
		PolicyYear=i;
		output;
	end;
	format StartDate EndDate date9.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Dec 2017 07:47:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423271#M280957</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-12-22T07:47:50Z</dc:date>
    </item>
    <item>
      <title>Re: Do-loop question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423321#M280958</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Policy_Number$ (Policy_Start_date Policy_End_date)(:date9.) Policy_Term Age;
format Policy_Start_date Policy_End_date date9.;
datalines;
101 10-Aug-15 8-Aug-18 3 58
102 25-Feb-16 23-Feb-18 2 55
;
data want;
 set have;
 start=Policy_Start_date;
 _age=age;
 do PolicyYear=1 to Policy_Term;
  age=_age+PolicyYear-1;
  end=intnx('month',Policy_End_date,-PolicyYear+1,'s');
  output;
  start=end+1;
 end;
 format start end date9.;
 drop _age ;
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Dec 2017 14:29:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-loop-question/m-p/423321#M280958</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-12-22T14:29:15Z</dc:date>
    </item>
  </channel>
</rss>

