<?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: Fill year months between two dates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619095#M181701</link>
    <description>Please let us know if it worked for you.</description>
    <pubDate>Wed, 22 Jan 2020 10:33:20 GMT</pubDate>
    <dc:creator>Satish_Parida</dc:creator>
    <dc:date>2020-01-22T10:33:20Z</dc:date>
    <item>
      <title>Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619008#M181658</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hey,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have:&lt;/P&gt;&lt;P&gt;PatientID&amp;nbsp; &amp;nbsp; &amp;nbsp;Min_YearMo&amp;nbsp; &amp;nbsp; Max_YearMo&lt;/P&gt;&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201711&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201801&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 201803&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Want:&lt;/P&gt;&lt;P&gt;PatientID&amp;nbsp; &amp;nbsp; &amp;nbsp;Min_YearMo&amp;nbsp; &amp;nbsp; Max_YearMo&lt;/P&gt;&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201711&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201712&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201801&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201802&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201801&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201802&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;201803&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want create new rows based on number of month difference between min and max yearmonths.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Max_YearMo is always constant across all patient.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks, appreciate your help.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2020 00:33:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619008#M181658</guid>
      <dc:creator>Sujithpeta</dc:creator>
      <dc:date>2020-01-22T00:33:59Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619011#M181660</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/94658"&gt;@Sujithpeta&lt;/a&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;INTNX is your friend:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;                                                                                                                                      
  input patientid $ (min_yearmo max_yearmo) (:yymmn6.) ;                                                                                         
  format m: yymmd7. ;                                                                                                                            
  cards ;                                                                                                                                        
A  201711  201803                                                                                                                                
B  201801  201803                                                                                                                                
;                                                                                                                                                
                                                                                                                                                 
data want ;                                                                                                                                      
  set have ;                                                                                                                                     
  do _n_ = 1 by 1 until (min_yearmo = max_yearmo) ;                                                                                              
    output ;                                                                                                                                     
    min_yearmo = intnx ("mon", min_yearmo, 1) ;                                                                                                  
  end ;                                                                                                                                          
run ;   
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2020 00:59:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619011#M181660</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2020-01-22T00:59:58Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619017#M181665</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have created min_yearmo and max_yearmo using below code, both came out with format&amp;nbsp;BEST12.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;min_yearmo = YEAR(fromdate)*100+month(fromdate);
max_yearmo = YEAR(end_date)*100+month(end_date);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;In this scenario, to which format should I change this to apply your code? I tried the format yymmn6. but ended up converting the&amp;nbsp;2017-11-02 date to&amp;nbsp;251204. Even still, I ran the code using the above format and the code is taking forever to run so had to stop the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Appreciate your help. Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2020 02:07:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619017#M181665</guid>
      <dc:creator>Sujithpeta</dc:creator>
      <dc:date>2020-01-22T02:07:39Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619022#M181667</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/94658"&gt;@Sujithpeta&lt;/a&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In SAS, storing dates as a YYYYMM number is highly deprecated for a variety of reasons. However, if this is what you have in your input data and if you want to keep it such on the way out, some on-the-fly transformation is needed to make them into SAS date values, or otherwise the INTNX function cannot operate properly:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;                                                                                                                                      
  input patientid $ (min_yearmo max_yearmo) (:6.) ;                                                                                              
  cards ;                                                                                                                                        
A  201711  201803                                                                                                                                
B  201801  201803                                                                                                                                
;                                                                                                                                                
                                                                                                                                                 
data want (drop = _:) ;                                                                                                                          
  set have ;                                                                                                                                     
  _minym = input (put (min_yearmo, z6.), yymmn6.) ;                                                                                              
  do _n_ = 1 by 1 until (_minym = input (put (max_yearmo, z6.), yymmn6.)) ;                                                                      
    output ;                                                                                                                                     
    _minym = intnx ("mon", _minym, 1) ;                                                                                                          
    min_yearmo = input (put (_minym, yymmn6.), 6.) ;                                                                                             
  end ;                                                                                                                                          
run ;      
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2020 02:48:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619022#M181667</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2020-01-22T02:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619087#M181696</link>
      <description>&lt;P&gt;This not ideal but it works.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
output;
do while (Min_YearMo&amp;lt;Max_YearMo);
	Min_YearMo_y=floor(Min_YearMo/100);
	Min_YearMo_m=mod(Min_YearMo,100);
	Min_YearMo_m=Min_YearMo_m+1;
	if Min_YearMo_m&amp;gt;12 then do;
		Min_YearMo_m=1;
		Min_YearMo_y=Min_YearMo_y+1;
	end;
	Min_YearMo=Min_YearMo_y*100+Min_YearMo_m;
	if Min_YearMo&amp;lt;Max_YearMo then output;
end;
drop Min_YearMo_y Min_YearMo_m;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 22 Jan 2020 10:32:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619087#M181696</guid>
      <dc:creator>Satish_Parida</dc:creator>
      <dc:date>2020-01-22T10:32:41Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619095#M181701</link>
      <description>Please let us know if it worked for you.</description>
      <pubDate>Wed, 22 Jan 2020 10:33:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619095#M181701</guid>
      <dc:creator>Satish_Parida</dc:creator>
      <dc:date>2020-01-22T10:33:20Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619138#M181720</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/94658"&gt;@Sujithpeta&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;one more approach, when you have numeric values like 201901, could be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;                                                                                                                                      
  input patientid $ min_yearmo max_yearmo ;                                                                                         
  cards ;                                                                                                                                        
A  201711  201803
B  201801  201803
C  201801  201911
;                                                                                                                                                
run;
 
data want ;                                                                                                                                      
  set have ;                                                                                                                                     
  do until (min_yearmo &amp;gt; max_yearmo);
      output ; 
      /*put _all_;*/
      min_yearmo + 1 ;
      if (mod(min_yearmo,100)&amp;gt;12) then min_yearmo + 88; 
  end ;                                                                                                                                          
run ;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the best&lt;/P&gt;&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2020 13:14:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619138#M181720</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2020-01-22T13:14:20Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619150#M181723</link>
      <description>Thanks &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&lt;BR /&gt;It worked.</description>
      <pubDate>Wed, 22 Jan 2020 13:58:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619150#M181723</guid>
      <dc:creator>Sujithpeta</dc:creator>
      <dc:date>2020-01-22T13:58:23Z</dc:date>
    </item>
    <item>
      <title>Re: Fill year months between two dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619151#M181724</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/35763"&gt;@yabwon&lt;/a&gt;&lt;BR /&gt;Thanks for the solution. Other person code worked for me yesterday. I'll try this approach as well and let you know if it worked. Thanks agian</description>
      <pubDate>Wed, 22 Jan 2020 13:59:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-year-months-between-two-dates/m-p/619151#M181724</guid>
      <dc:creator>Sujithpeta</dc:creator>
      <dc:date>2020-01-22T13:59:43Z</dc:date>
    </item>
  </channel>
</rss>

