如何在SAS之前的30天之前创建日历表?

时间:2016-08-19 15:59:49

标签: sas

我是SAS的新手。

我正在尝试在SAS中创建一个简单的表,其中包含三列,日期(今天为期30天),how_many_days_before(表示日期和今天之间的天数),以及which_day(显示该日期的名称)星期一,星期二等)。

编辑:这是我试过的代码。我想用循环自动化宏。此外,输出表现在具有空白值for_day和how_many_days_before变量。

%macro which_day;
   if date=160822 then which_day='monday';
   else if date=160821 then which_day='sunday';
%mend;
%macro how_many_days_before;
 if date=160822 then how_many_days_before=0;
 else if date=160821 then how_many_days_before=1;
%mend;
data calendar;
  attrib date format=yymmdd6.;
  do date=today()-30 to today();
    output;
  end;
  %which_day;
  %how_many_days_before;
run;

我没有运气就尝试过intnx功能。

由于

2 个答案:

答案 0 :(得分:0)

我没有测试过这段代码,但它应该会给你一个启动器。希望它有所帮助

data calendar;
  attrib date today format=date9.;
  do date=today()-30 to today();
    output;
  end;
run;

答案 1 :(得分:0)

我能够在不使用宏的情况下在数据步骤中编写它。

data calendar;
  attrib date format=yymmdd6.;
  do date=today()-30 to today();
    how_many_days=today()-date;
    which_day=weekday(date);
    output;
  end;
run;