2016-08-19 241 views
-4

我是SAS的新手。如何在今天之前的SAS中创建30天的日历表?

我想在SAS中创建一个简单的表格,它包含三列,日期(对于今天的三十天prir),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函数。

感谢

+3

请发布您试过的代码,以便我们可以看到您遇到问题的位置。 StackOverflow上的人员很乐意帮助解决问题,但不是代码编写服务。 –

+0

根据您的问题,您的图像不会通知您正在尝试做什么。 – Reeza

+0

你好,罗伯特和雷萨,你说得对,我很抱歉。原谅我,因为这是我的第一篇文章。 – Secil

回答

0

我没有测试此代码,但它应该给你一个首发。希望它有帮助

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

你好,谢谢,因为这有助于作为首发 – Secil

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; 
相关问题