2014-07-22 46 views
0

我对SAS中的日期感到沮丧。 我正在使用proc预测,并试图让我的日期均匀分布。我使用proc sql做了一些预处理,按月计算我的计数,但我的日期不正确。删除时间序列的日期变量的日期部分SAS

尽管我的数据集看起来不错(b/c我使用了MONYY格式),但该变量的实际值是错误的。

date year month count 
Jan10 2010 1  100 
Feb10 2010 2  494 
... 
.. 
. 

日期值实际上是日期(18267)的完整SAS表示,这意味着它包括日计数。

我是否需要将变量转换为字符串并返回日期或者是否存在可以运行的快速proc?

我的目标是使用proc预测的日期变量,所以我只想要月和年。

感谢您的帮助!

+0

是问题的数据是在不同的日子,但同月(即,你有Jan1一行,并与Jan15行),或者他们全部在月份的第一天(或类似天气),只是每个月有不同的天数?也许可以在工作示例数据集中添加'gplot'代码(如果需要,还可以使用proc预测代码)来显示您遇到的问题。 – Joe

回答

2

您无法在SAS中定义日期变量(因此从1jan1960开始经过的天数)不包括该日期。 你可以做的是用像monyy这样的格式隐藏一天。但底层号码将始终包含该信息。

也许你可以在proc预测中使用interval=month选项?

请详细说明您遇到的问题与预测程序。


编辑:检查this例如:

data past; 
    keep date sales; 
    format date monyy5.; 
    lu = 0; 
    n = 25; 
    do i = -10 to n; 
     u = .7 * lu + .2 * rannor(1234); 
     lu = u; 
     sales = 10 + .10 * i + u; 
     date = intnx('month', '1jul1991'd, i - n); 
     if i > 0 then output; 
    end; 
run; 
proc forecast data=past interval=month lead=10 out=pred; 
    var sales; 
    id date; 
run; 
+0

谢谢。我会看看。我的问题实际上是使用日期变量关于通过gplot进行绘图。 PROC FORECAST通过interval = month来完成它的工作,但是当我绘制实际数据并预测它会显示“警告:标记为CREATION_DATE2的轴上的时间间隔不是均匀间隔 警告:由于主要的滴答增量有被指定为不均匀或无序的间隔。“ – user2822055