提取新变量的月份和年份

时间:2013-12-04 17:11:52

标签: sas

我有一个数据集,其变量的日期为订单(MMDDYY10.)。我需要提取月份和年份以按月份查看订单,因为有多年。我隐约知道monthyear函数,但是我如何一起使用它们来创建一个新的月份bin?

理想情况下,我会为每个月/每年创建一个bin,因此我的输出看起来像:

                    Date
Item    2011OCT 2011NOV 2011DEC 2012JAN ...
a         50      40       30     20
b         15      20       25     30 
c         1        2        3      4
total    

以下是我创建的示例代码:

data dsstabl;
    set dsstabl;
    order_month = month(AC_DATE_OF_IMAGE_ORDER);
    order_year = year(AC_DATE_OF_IMAGE_ORDER);
    order = compress(order_month||order_year);
run;

proc freq data
    table item * _order;
run;

提前致谢!

2 个答案:

答案 0 :(得分:2)

进行分析时,请使用适当的格式。 MONYY.听起来像是正确的。这将正确排序并相应地对值进行分组。 类似的东西:

proc means data=yourdata;
class datevar;
format datevar MONYY7.;
var whatever;
run;

所以你的表:

proc tabulate data=dsstabl;
class item datevar;
format datevar MONYY7.;
tables item,datevar*n;
run;

答案 1 :(得分:0)

或者你可以用很好的技巧来做到这一点。

Declare @a varchar(10)
Declare @b varchar(10)

DECLARE MyCursor CURSOR FOR  
select col1, col2 from Table
    OPEN MyCursor   
    FETCH NEXT FROM MyCursor INTO @a, @b   
WHILE @@FETCH_STATUS = 0   
BEGIN   
       Print @a + ' ' + @b
       FETCH NEXT FROM MyCursor INTO @a, @b  
END   
CLOSE MyCursor   
DEALLOCATE MyCursor

始终使用它。