2013-12-11 16 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数据集选项有帮助。
    (提示:你可能需要创建第二个数据集)