【问题标题】:How to create a calendar table for 30 days prior to today in SAS?如何在SAS中创建今天前30天的日历表?
【发布时间】:2016-08-19 15:59:49
【问题描述】:

我是 SAS 的新手。

我正在尝试在 SAS 中创建一个简单的表,该表具有三列,日期(从今天开始的三十天),how_many_days_before(表示日期和今天之间的天数)和 which_day(显示该日期的名称如星期一、星期二等)。

编辑:这是我尝试过的代码。我想用循环自动化宏。此外,输出表中 which_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 函数,但没有运气。

谢谢

【问题讨论】:

  • 请贴出您尝试过的代码,以便我们查看您遇到的问题。 StackOverflow 上的人很乐意帮助解决问题,但不是代码编写服务。
  • 根据您的问题,您的图片无法告知您要执行的操作。
  • 你好罗伯特和 Reeza,你是对的,我很抱歉。原谅我,这是我的第一篇文章。

标签: sas


【解决方案1】:

我没有测试过这段代码,但它应该给你一个入门。希望对你有帮助

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多