填写日期范围内的月份和年份?

use*_*931 1 time-series sas

我是SAS新手,想知道如何最有效地列出开始日期和结束日期之间的月份和年份,以及开始日期和结束日期本身.我已经阅读了INTCK和INTNX函数,时间序列数据的EXPAND函数,甚至CALENDAR FILL,但我不确定如何将它们用于此特定目的.由于拖放自动填充功能,使用Excel中的小数据集可以轻松完成此任务,但由于数据集的大小,我需要在SAS中找到一种方法.任何建议将不胜感激.谢谢!

数据集位于如下组织的大型文本文件中:

ID          Start               End
1000        08/01/2012          12/31/2012
1001        07/01/2010          05/31/2011
1002        04/01/1990          10/31/1991
Run Code Online (Sandbox Code Playgroud)

但输出最终应该是这样的:

ID      MonthYear
1000    08/12
1000    09/12
1000    10/12
1000    11/12
1000    12/12
1001    07/10
1001    08/10
1001    09/10
1001    10/10
1001    11/10
1001    12/10
1001    01/11
1001    02/11
1001    03/11
1001    04/11
1001    05/11
1002    04/90
1002    05/90
1002    06/90
1002    07/90
1002    08/90
1002    09/90
1002    10/90
1002    11/90
1002    12/90
1002    01/91
1002    02/91
1002    03/91
1002    04/91
1002    05/91
1002    06/91
1002    07/91
1002    08/91
1002    09/91
1002    10/91
Run Code Online (Sandbox Code Playgroud)

dat*_*ll_ 5

data want2;
  set have;
  do i = 0 to intck('month',start,end);
      monthyear=intnx('month',start,i,'b');
      output;
      end;
   format monthyear monyy.;
   keep id monthyear;
   run;
Run Code Online (Sandbox Code Playgroud)