在SAS中连续观测的两个平均值-考虑秋季时间变化中的额外小时数

在SAS中连续观测的两个平均值-考虑秋季时间变化中的额外小时数,sas,average,dst,Sas,Average,Dst,我有以下几年的数据: Date HE Value 04NOV2007 1 981.00 04NOV2007 2 925.00 04NOV2007 3 900.00 04NOV2007 4 875.00 04NOV2007 5 880.00 04NOV2007 6 894.00 04NOV2007 7

我有以下几年的数据:

Date           HE       Value
04NOV2007       1       981.00
04NOV2007       2       925.00
04NOV2007       3       900.00
04NOV2007       4       875.00
04NOV2007       5       880.00
04NOV2007       6       894.00
04NOV2007       7       946.00
04NOV2007       8       982.00
04NOV2007       9      1051.00 
04NOV2007      10      1122.00
04NOV2007      11      1167.00
04NOV2007      12      1194.00
04NOV2007      13      1203.00
04NOV2007      14      1199.00
04NOV2007      15      1200.00
04NOV2007      16      1194.00
04NOV2007      17      1203.00
04NOV2007      18      1238.00
04NOV2007      19      1379.00
04NOV2007      20      1402.00
04NOV2007      21      1357.00
04NOV2007      22      1300.00
04NOV2007      23      1205.00
04NOV2007      24      1093.00
04NOV2007      24       994.00

为了消除在秋季时间更改日期创建的额外观测值,我需要平均HE2和HE3的值,用新值替换HE2的值,然后在切换其他小时之前删除HE3观测值。将HE值转换为增量1是没有问题的,但我不确定完成平均HE2和HE3任务的最有效方法。在我的完整数据集中,每个日期都有24小时(为了简洁起见,未显示)。提前谢谢你

让我们假设有某种时间变化的指示器。因为我们知道它位于HE2和HE3,所以我们将在本例中直接使用2和3的值。求两个值的平均值就是简单地求和并除以二

我们将
HE
的值存储在变量
sum\u values
中。接下来,我们将检查我们在哪个
中。如果我们在2中,让我们删除该行,不做任何进一步的操作。如果我们在3中,让我们用求和的总值替换该值,并将其除以平均值的数量(在本例中为2)。然后将其值HE设置为2

data want;
    set have;
    by date he;

    if(HE IN(2,3) ) then do;
        sum_values+value;
        n_values+1;

        if(HE = 2) then delete;
            else if(HE = 3) then do;
                value = sum_values/n_values;
                HE    = 2;
           end;
    end;
run;

如果您的数据与上面所示类似,则此方法可行,但如果您有其他相关变量依赖于
HE2
,并且需要替换
HE3
,则您需要将这些变量在临时保留变量中向前推进。

您是否总是试图在HE2和HE3上执行此操作?平均HE24观测值会有问题吗?我被引导到平均HE2和HE3,因为这是时间变化发生的时候。这是用于预测的特定电力负荷数据,因此尽可能接近该小时的实际值非常重要。