我在SAS编码时遇到问题。
我有一系列日期表A:
Date1 Date2
01Jan2016 04Jan2016
01Jan2016 08Jan2016
04Jan2016 06Jan2016
我有一个参考表B:
Date Value
01Jan2016 1
02Jan2016 0
03Jan2016 1
04Jan2016 1
05Jan2016 0
06Jan2016 1
07Jan2016 0
08Jan2016 1
我需要从表A中获取每个日期范围的值列的总和。
使用表C:
Date1 Date2 Value
01Jan2016 04Jan2016 3
01Jan2016 08Jan2016 5
04Jan2016 06Jan2016 2
谢谢!
答案 0 :(得分:0)
我认为最简单的方法是使用proc sql
。
构建样本数据:
data a;
infile datalines dlm=' ';
input date1 :date9. date2 :date9.;
format date1 date2 date9.;
datalines;
01Jan2016 04Jan2016
01Jan2016 08Jan2016
04Jan2016 06Jan2016
;
run;
data b;
infile datalines dlm=' ';
input date :date9. value;
format date date9.;
datalines;
01Jan2016 1
02Jan2016 0
03Jan2016 1
04Jan2016 1
05Jan2016 0
06Jan2016 1
07Jan2016 0
08Jan2016 1
;
run;
解决方案:
proc sql;
create table c as
select a.date1, a.date2, sum(value) as value
from a, b
where b.date between a.date1 and a.date2
group by a.date1, a.date2;
quit;