2013-12-11 47 views
-1

日期之間的最小差額我有這個問題,HW是問我:查找SAS

寫SAS程序來創建一個包含測試日期最接近 交貨日期的數據集。您的程序必須適用於任何測試日期和交付日期。

這是我到目前爲止所做的。數據源在excel中單獨顯示,我將其拉入併合並,只有1個交付日期和21個測試日期。我認爲找到最近的一天的最佳方式是最小差異的絕對值,然後使用proc sort,因爲這是我們允許使用的除proc導入和導出以外的唯一proc命令。任何想法/幫助/任何將不勝感激謝謝。

proc import datafile = "C:\Users\file1.xls" 
dbms=xls replace out=labs; sheet = "labs";; 
run; 

proc import datafile = "C:\Users\file1.xls" 
dbms=xls replace out=delivery; sheet = "delivery"; 
run; 

data dl; 
merge delivery labs; 
dd = delivery_date; 
diff = dd - Test_date; 
run; 

這裏是他們在1列中的數據不知道如何格式化在這裏。

表1:

DELIVERY_DATE 11/16/2011

表2:

Test_date 13-MAR-11 10-APR-11 20 - 5月-11 9 -Jun-11 31-Jul-11 17-Aug-11 12-Sep-11 10-Nov-11 11-Oct-11 12-Dec-11 29-FEB-12 13-MAR-13 10-APR-10 可能20 - 10 9- 10年6月 21-JUL-11 15 - 8 - 11 15九月11 19 -Oct-11 21-Nov-11 22-Dec-11

+2

那麼,什麼是你的問題? –

+0

聽起來像你的老師是一個受虐狂,只允許你使用'proc sort/import/export'。如果我們能夠看到您的數據集樣本(即您正在使用的excel文件的一個子集),那將會很好。我的猜測是,在每一行中,你都有一個交付日期和至少21個測試日期,你想知道哪一個測試日期最接近每行的交付日期? –

回答

1

這聽起來像是你在正確的軌道上。考慮到這是家庭作業,我不會給你一個完整的解決方案,但這裏有一些成分可能對您有用:

  • 首先,你應該看看SAS網站有關絕對的詳細信息功能(因爲這是你想採取的路線):
    SAS/IML(R) 9.3 User's Guide: ABS Function

  • 接下來,您可能需要查看的文檔PROC SORT。這對於找到最小的差異將會很有用。

  • 僅獲取一條記錄,您可能會發現OBS數據集選項有幫助。
    (提示:你可能需要創建第二個數據集)