2017-08-04 87 views
0

嗨我有一個日期數據必須遞增到另一個變量中存儲的值。基於檢索日期的遞增日期

Sno  Date1  Date2 
1  20120201 20130101 
1  20120201 20130101 
2  20030812 20030908 
2  20030812 20030908 
3  20110402 20110602 
3  20110402 20110602 

不,我必須將date1縱向增加到(date2 - 20days)。 如何使用這個環路

如果我使用像

do i=a to b-20; 
increment=intnx('day',date1,i); 
end; 

則需要數天的SAS數和超出date2的

回答

0
data table; 
infile datalines dlm='|'; 
input sno date1 :anydtdte. date2 :anydtdte.; 
format date1 date2 date.; 
datalines; 
1|20120201|20130101 
1|20120201|20130101 
2|20030812|20030908 
2|20030812|20030908 
3|20110402|20110602 
3|20110402|20110602 
; 
run; 

data result; 
set table; 
do increment=date1 to date2-20; 
    output; 
end; 
format increment date.; 
run; 

假設date1date2存儲爲字符

+0

這是一個正確的答案代碼明智的,但好的答案應該包括代碼之外的解釋他們如何工作(教上午一條魚,不給他魚)。 – Joe

+0

@Joe你是對的。但是,他的問題還不清楚,這回答了我認爲他需要的東西。如果這不是他所需要的,或者他確實不瞭解,我很樂意進一步解釋。也就是說,所回答代碼的一部分是一段非常簡單的代碼,我認爲,任何具有SAS知識的人都應該理解,而不需要解釋。如果提問者沒有,這不是學習SAS的地方。 – user2877959

+0

儘管如此,這是標準的堆棧溢出選擇持有答案(閱讀[回答]以獲取更多信息)。只是代碼的答案不是一個好答案。如果問題不清楚,請求澄清而不是回答。 – Joe