如何在 SAS 中创建 运行 3 观察平均值?

How to create a running 3 observation average in SAS?

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

例如

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;

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

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