可以在 SAS 中找到与整个图书馆的唯一 ID 关联的最小和最大日期吗?
Possible to find minimum and maximum date associated with unique ID throughout library in SAS?
我在一个特定的图书馆中有许多不同的数据集,我想知道是否有一种方法可以找到与图书馆中所有数据集中的特定唯一 ID 关联的最小和最大日期?
目前,我可以在特定数据集中找到与特定 ID 关联的本地最小日期和本地最大日期,但此 ID 将再次出现在不同的数据集中,并有自己的 minimum/max 日期与之关联数据集。但是我想比较整个图书馆中这个特定唯一 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;
非常感谢您的帮助。
使用视图和 PROC SUMMARY 考虑这一点。
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 ;
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;
我在一个特定的图书馆中有许多不同的数据集,我想知道是否有一种方法可以找到与图书馆中所有数据集中的特定唯一 ID 关联的最小和最大日期?
目前,我可以在特定数据集中找到与特定 ID 关联的本地最小日期和本地最大日期,但此 ID 将再次出现在不同的数据集中,并有自己的 minimum/max 日期与之关联数据集。但是我想比较整个图书馆中这个特定唯一 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;
非常感谢您的帮助。
使用视图和 PROC SUMMARY 考虑这一点。
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 ;
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;