我可以导航到文件资源管理器中的库路径并搜索我的dataset.sas7bdat文件并查看它的大小。
但这不切实际。我甚至不确定WORK库的位置,即使我在远程服务器上执行了它,也很难访问它。
是否可以在日志或报告中打印数据集的大小/重量?
使用SAS EG 7.1和SAS 9.3
动机:我想这样做,因为我会尝试减少数据集大小,我想知道我获得了多少。
答案 0 :(得分:1)
只要您的库使用BASE引擎,您就可以使用pathname()
函数来查找它。之后,您可以使用sashelp视图来获取文件大小。您也可以使用os命令,但为此您需要启用x命令。
以下演示:
%let libds=WORK.SAMPLE;
/* create demo data */
data &libds;
retain string 'blaaaaaaaah';
do x=1 to 10000;
output;
end;
run;
/* extract library and datasaet from libds variable */
%let lib=%scan(&libds,1,.);
%let ds =%scan(&libds,2,.);
/* set up filename to point directly at the dataset */
/* note - if you have indexes you also need to do */
/* this for the .sas7bndx extension */
filename fref "%sysfunc(pathname(&lib))/&ds..sas7bdat";
/* query dictionary view for file attributes */
data _null_;
set sashelp.vextfl(where=(fileref='FREF'));
filesize=filesize/(1024**2); /* size in MB */
putlog filesize= 'MB';
run;
/* clear libref */
filename fref clear;
答案 1 :(得分:1)
您可以使用SQL词典视图dictionary.tables
:
/* Return libref, dataset name, # records, filesize & % compression */ proc sql ; create table size1 as select libname, memname, nlobs, filesize, pcompress from dictionary.tables where libname = 'WORK' and memname = 'MYDATA' ; quit ;