【发布时间】:2018-07-19 15:21:35
【问题描述】:
我有一个具有以下结构的数据集:
ID Date&Time var1 var2
1 1/11 1 yes
1 3/11 3 no
1 3/11 2 no
1 5/11 5 yes
1 10/11 2 no
2 3/11 0 yes
2 12/11 1 no
2 23/11 2 yes
2 24/11 0 yes
3 5/11 1 yes
3 6/11 2 no
3 8/11 5 yes
3 9/11 4 no
这是一个日志文件,其中包含我的分析所依据的观察结果。现在我想考虑一个移动平均线,例如上周(以及月份、年份等)的所有观测值,即我想要如下结构:
ID Date&Time var1 var2 week_avg week_count
1 1/11 1 yes . .
1 3/11 3 no 1 1
1 3/11 2 no 2 1
1 5/11 5 yes 2 1
1 10/11 2 no 3.33 1
2 3/11 0 yes . .
2 12/11 1 no . .
2 23/11 2 yes . .
2 24/11 0 yes 2 1
3 5/11 1 yes . .
3 6/11 2 no 1 1
3 8/11 5 yes 1.5 1
3 9/11 4 no 2.66 2
有没有办法在do-until 循环中使用lag 函数?
或者PROC EXPAND 是否能够通过指定时间窗口而不是观察次数来执行移动平均?
【问题讨论】:
-
你能澄清一下你在做什么吗?您是说您想要使用您拥有的数据在一周内进行观察的移动平均值吗?如果是这样,您首先需要将数据累积到您感兴趣的时间间隔内的时间序列中。这可以通过数据步骤和
proc timeseries来实现 -
您是否有任何机会获得 SAS-ETS 许可?
-
proc timeseries只适用于一次转换,对吧?例如,几周或几个月? -
我确实有企业指南和企业矿工可用。实际上,我什至不知道特定的时间序列 SAS 工具
-
SAS/ETS 是单独许可的 SAS 程序集。就像 SAS/Stat 与 Base SAS 是分开的。运行
proc setinit;run;以查看您已获得许可。
标签: sas