2012-07-16 143 views
0

我有一堆看起來像這樣的數據點數據。示例:兩個日期之間的月數SAS

 Date_1    Date_2 
    10FEB2010:00:00:00  02/07/08 
    10FEB2010:00:00:00  03/10/08 
    10FEB2010:00:00:00  04/07/08 
    24MAY2010:00:00:00  05/09/08  
    24MAY2010:00:00:00  06/11/08  
    24MAY2010:00:00:00  07/11/08 

我想指數從月初的兩個日期,然後得到的月數之間在一個叫新列「month_from。」我想新列「month_from」添加到我設置的樣本數據,所以它看起來是這樣的:

 Date_1    Date_2  month_from 
    10FEB2010:00:00:00  02/07/08  -24 
    10FEB2010:00:00:00  03/10/08  -23 
    10FEB2010:00:00:00  04/07/08  -22 
    24MAY2010:00:00:00  05/09/08  -24 
    24MAY2010:00:00:00  06/11/08  -23 
    24MAY2010:00:00:00  07/11/08  -22 

我最初的嘗試是:

month_from=intck('month.1','Date_1'd,'Date_2'd); 

我使用了正確的功能?

如何將變量「month_from」添加到樣本數據集?

回答

2

這似乎是做你在找什麼...不能告訴你是否需要將date_1和date_2從字符轉換爲數字(日期)..所以我也包括該代碼。

(也沒有刻意去測試,如果INTCK日期變量必須在每月的1日至給出正確的結果)

data have; 
length date_1 $18 date_2 $8; 
infile datalines delimiter=','; 
input date_1 $ date_2 $; 

datalines; 
10FEB2010:00:00:00,02/07/08 
10FEB2010:00:00:00,03/10/08 
10FEB2010:00:00:00,04/07/08 
24MAY2010:00:00:00,05/09/08 
24MAY2010:00:00:00,06/11/08 
24MAY2010:00:00:00,07/11/08 
; 

data want (drop=date_1 date_2 dt); 
set have; 
dt=input(date_1,datetime.); 
date1=datepart(dt); 
date2=input(date_2,mmddyy10.); 

month_from=intck('month',intnx('month',date1,0,'b'),intnx('month',date2,0,'b')); 
format date1 date2 mmddyy10.; 
run; 
+0

謝謝,我剛纔意識到的問題是在差異日期格式。 datepart()函數修復了這個問題。謝謝 – bstockton 2012-07-16 20:18:20

相關問題