2016-10-22 50 views
0

我在SAS中編寫了一個問題。SAS:加入日期以總計一列

我有表格中的日期範圍:

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

請發表你試過用SO規則排列的。 – Reeza

回答

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;