在sas数据集中查找与指定日期最近的日期?

在sas数据集中查找与指定日期最近的日期?,sas,Sas,根据这些数据,谁能帮助我制作一个包含 最接近交付日期的测试日期 交付日期2011年11月16日 测试日期2011年11月21日2011年11月10日2010年10月5日 提前感谢如果没有更多信息,就无法正确回答,但是如果您有两个数据集,每个日期一行,以及实际的日期变量,那么解决方案如下: create table finaldsn as select a.* , b.* , a.delivery_date-b.test_date as days , abs(calculated

根据这些数据,谁能帮助我制作一个包含

最接近交付日期的测试日期

交付日期2011年11月16日

测试日期2011年11月21日2011年11月10日2010年10月5日


提前感谢

如果没有更多信息,就无法正确回答,但是如果您有两个数据集,每个日期一行,以及实际的日期变量,那么解决方案如下:

create table finaldsn as 
 select a.* 
 , b.* 
 , a.delivery_date-b.test_date as days 
 , abs(calculated days) as absdays 
 , min(calculated absdays)as close 
 from dsnA as a 
 full join 
 dsnB as b 
 on a.subject=b.id 
 where a.delivery_date ne . and b.ltest_datebdt ne . 
and b.id in (select distinct subject 
 from dsnA) 
 group by a.subject, a.delivery_date 
 having calculated absdays=calculated close 
;
quit;

这是以下文章中的内容:它还提供了一些其他解决方案。

您可以使用SAS函数INTCK来计算样本日期和目标日期之间的差异,然后您可以只保留接近0的日期

以下是一个链接,您可以快速了解这些功能:


另外,请随意查看链接左侧的其他功能,因为从长远来看,它们可能会派上用场。

您的问题不完整。请编辑它来解释数据结构。不清楚这是两个不同的数据集还是一个数据集,测试日期是多行还是一行三列。这些是日期变量还是字符串?你想如何处理领带?嘿,Joe,数据是两个独立的集合,在hey Joe的delivery_date变量中有一个日期。我真的不知道如何在这里包含数据,但想法是这样的。我有一个excel文件,其中有两张表,一张包含交付日期变量(2011年11月16日)的单个观察值,另一张包含测试日期变量的20个观察值。我的问题是如何进行计算以找到最接近交付日期的测试日期。以及如何将测试日期变量的一个观察值与20相匹配。如果你想查看数据,我很乐意提供。让我知道怎么做。非常感谢。所有这些都是我假设的。请看答案,让我知道它是否有效,如果无效,您需要帮助解决。INTCK用于计算区间差异,而不是简单的差异。SAS日期存储为天数的整数,因此简单的比较就足够了。因特克只会把事情搞得一团糟。