可以找到整个SAS中与唯一ID相关的最小和最大日期吗?

时间:2019-04-30 02:25:59

标签: sas sas-macro

在一个特定的库中我有许多不同的数据集,我想知道是否存在一种方法来查找与库中所有数据集中的特定唯一ID相关的最小和最大日期?

当前,我可以在特定数据集中找到与特定ID相关联的本地最小和本地最大日期,但是该ID将在整个不同数据集中再次显示,并且具有与该数据集相关联的自己的最小/最大日期。但是我想在整个库中比较此特定唯一ID上的日期,因此我可以找到全局最小和全局最大日期,但是我不知道如何在整个库中进行此搜索。

当前我的代码如下所示

DATA SUBSET_MIN_MAX (keep= MIN_DATE MAX_DATE UNIQUEID);
                                    DO UNTIL (LAST.UNIQUEID);
                                    set LIBRARY.&SAS_FILE_N;
                                    BY UNIQUEID;
                                        MIN_DATE = MIN(MIN_DATE,DATE);
                                        MAX_DATE = MAX(MAX_DATE,DATE);
                                    if last.UNIQUEID then output;
                                    END;
                                format MIN_DATE MAX_DATE date9.;
                                RUN;

非常感谢您的协助。

1 个答案:

答案 0 :(得分:3)

使用视图和PROC摘要来考虑这一点。

data d1; set sashelp.class; date=height+ranuni(4); run;
data d2; set sashelp.class; date=height-rannor(5); run;
data d3; set sashelp.class; date=height-ranuni(3); run;
data alld/view=alld;
   length indsname $64;
   set work.d:(keep=name date) indsname=indsname;
   source=indsname;
   run;
proc summary data=alld nway missing;
   class name;
   var date;
   output out=want(drop=_type_) 
      idgroup(max(date) out(source date)=source1 globalmax)
      idgroup(min(date) out(source date)=source2 globalmin)
      ;
   run;
proc print;
   run;

enter image description here