SAS proc timeseries:在指定的间隔上聚合

SAS proc timeseries:在指定的间隔上聚合,sas,Sas,我想使用PROC TIMESERIES在指定的时间间隔内聚合数据。特别是,我想在60秒的时间段内进行聚合,从30秒开始计算 我已尝试使用以下代码: proc timeseries data=test out= test_30shift; id datetime interval=sec60 accumulate=first setmissing=missing align=middle start = '18apr1997.00:05:30'dt end = '19apr1997.00:00:3

我想使用PROC TIMESERIES在指定的时间间隔内聚合数据。特别是,我想在60秒的时间段内进行聚合,从30秒开始计算

我已尝试使用以下代码:

proc timeseries data=test out= test_30shift;
id datetime interval=sec60 accumulate=first setmissing=missing align=middle start = '18apr1997.00:05:30'dt end = '19apr1997.00:00:30'dt; 
proc timeseries data=test out= test_noshift;
id datetime interval=sec60 accumulate=first setmissing=missing align=beg start = '18apr1997.00:05:00'dt end = '19apr1997.00:00'dt; 
var bid;
run;
var投标; 运行

我还尝试了ALIGN=start

结果类似于以下代码:

proc timeseries data=test out= test_30shift;
id datetime interval=sec60 accumulate=first setmissing=missing align=middle start = '18apr1997.00:05:30'dt end = '19apr1997.00:00:30'dt; 
proc timeseries data=test out= test_noshift;
id datetime interval=sec60 accumulate=first setmissing=missing align=beg start = '18apr1997.00:05:00'dt end = '19apr1997.00:00'dt; 
var bid;
run;

如何从我想要的地方开始,在一段时间间隔内实现聚合

你所拥有的很接近。您需要设置
间隔=sec60.31

data test;
format dt datetime19.;

do dt = "01JAN2015:00:00:00"dt to "02JAN2015:00:00:00"dt;
    x = rannor(123);
    output;
end;
run;

proc timeseries data=test out=test2;
id dt interval=sec60.31 accumulate=first align=beginning;
var x;
run;

0-59的中点在29秒,所以我们必须移动31秒,以毫米:30开始