【问题标题】:removing day portion of date variable for time series SAS删除时间序列 SAS 的日期变量的日期部分
【发布时间】:2014-07-22 13:36:03
【问题描述】:

我对 SAS 中的日期有些失望。 我正在使用 proc 预测,并试图让我的日期均匀分布。我使用 proc sql 进行了一些预处理以按月计算我的计数,但我的日期不正确。

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

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

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

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

我的目标是将日期变量与 proc 预测一起使用,所以我只需要月份和年份。

感谢您的帮助!

【问题讨论】:

  • 是数据在不同的日子,但在同一个月的问题(即,您有 Jan1 的一行和 Jan15 的一行),还是它们都在当月的第一天(或类似的),只是每个月有不同的天数?也许添加 gplot 代码和一个工作示例数据集(如果需要,还可以添加 proc 预测代码)以显示您遇到的问题。

标签: date format sas forecasting


【解决方案1】:

您不能在 SAS 中定义日期变量(因此从 1960 年 1 月 1 日起经过的天数)不包括日期。 你可以做的是用像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;

【讨论】:

  • 谢谢。我会看看。我的问题实际上是使用关于通过 gplot 绘图的日期变量。 PROC FORECAST 通过间隔 = 月完成其工作,但是当我绘制实际值并进行预测时,它显示“警告:标记为 CREATION_DATE2 的轴上的间隔不是均匀分布的。警告:不会绘制小刻度线,因为主要刻度增量已经以不均匀或无序的间隔指定。"
猜你喜欢
  • 2021-07-10
  • 2013-06-15
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
相关资源
最近更新 更多