【问题标题】:How to create a running 3 observation average in SAS?如何在 SAS 中创建一个连续的 3 个观察平均值?
【发布时间】:2018-06-07 10:12:32
【问题描述】:

我有一个数据集,其中有一列中有一些卷,我想创建第二列,其中包含前三个观察值的平均值。这可能吗?

例如

data have;

  input Vol  Avg_pre_4;
  datalines;

  228  . 
  141  .
  125  .
  101  164.66
  116  122.33
  107  114
  74   108
  118  99
  127  99.67
  123  106.33
  ;
run;

【问题讨论】:

  • 检查您是否拥有 SAS ETS 许可。如果是这样,那么proc expand 具有执行移动平均线的内置功能
  • 是的,行得通!

标签: sas enterprise-guide


【解决方案1】:

LAG 函数是一个自动内置队列。

VOL_AVG_OF_PRIOR3 = MEAN ( lag(Vol), lag2(Vol), lag3(Vol) )
if _n_ < 4 then VOL_AVG_OF_PRIOR3 = .;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多