SAS:使用程序创建时间 ID 变量(而不是使用点击系统)

SAS: create time ID variable with program (instead of using the point-and-click system)

SAS 提供了一个点击式系统,可以使用特定频率(例如周、季度、年)从特定开始日期创建时间 ID 变量。

由于我需要反复执行此过程,所以我喜欢使用代码,因为它可以使事情变得容易得多。我的数据涵盖 1985-2005 年并分为几个季度(给出 21 年 * 4 个季度 = 84 个观察值)。

日期变量列应如下所示(或提供任何其他可以格式化的 sas 日期): 日期:

1985/1

1985/2

1985/3

1985/4

1986/1

等等

有人知道如何为此编写代码吗?

非常感谢您!

Rens(研究音乐排行榜的社会学博士生)

您可以使用数据步骤和 YYQ 函数。

data quarters;
   do year = 1985 to 2005;
      do quarter = 1 to 4;
         date = yyq(year,quarter);
         output;
         end;
      end;
   format date yyq.;
   run;
proc print;
   run;

使用 intnx 函数。

data have;
do i=0 by 1;
   date=intnx('quarter',yyq(1985,1),i);
   if date>yyq(2005,4) then return;
   output;
end;
format date yyqs6.;
run;